728x90
게시글 삭제
BoardMapper
@Delete("DELETE FROM content_table WHERE content_board_idx = #{content_board_idx}")
int getCnt(int content_board_idx);
- 게시글을 삭제하는 쿼리문을 실행하는 메소드로 매개변수로 가져오는 게시글 번호를 기준으로 하여 삭제한다.
BoardDao
public void deleteInfo(int content_idx) {
boardMapper.deleteInfo(content_idx);
}
BoardService
public void deleteInfo(int content_idx) {
boardDao.deleteInfo(content_idx);
}
BoardController
@GetMapping("/delete")
public String delete(@RequestParam("board_info_idx") int board_Info_Idx,
@RequestParam("content_idx") int content_idx,
Model model) {
boardService.deleteInfo(content_idx);
model.addAttribute("board_info_idx",board_Info_Idx); // n팀 게시글 삭제 후 n팀으로 돌아오기 위해
return "board/delete";
}
Board.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<c:set var="root" value="${pageContext.request.contextPath }/" />
<script>
alert("Deleted successfully.")
location.href='${root}board/main?board_info_idx=${board_info_idx}'
</script>
페이지작업
Page
package kr.bit.beans;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class Page {
private int min;
private int max;
private int prePage;
private int nextPage;
private int pageCnt;
private int currentPage;
public Page(int contentCnt, int currentPage, int contentPageCnt, int pa) {
this.currentPage = currentPage;
pageCnt = contentCnt / contentPageCnt;
//533/10=53
if (contentCnt % contentPageCnt > 0) {
pageCnt++;
}
min = ((currentPage - 1) / contentPageCnt) * contentPageCnt + 1;
max = min + pa - 1;
if (max > pageCnt) {
max = pageCnt;
}
prePage = min - 1;
nextPage = max + 1;
if (nextPage > pageCnt) {
nextPage = pageCnt;
}
}
}
코드 추가
BoardMapper
@Select("select count(*) from content_table where content_board_idx = #{content_board_idx}")
int getCnt(int content_board_idx);
BoardDao
public int getCnt(int content_board_idx) {
return boardMapper.getCnt(content_board_idx);
}
BoardService
public Page getCnt(int content_board_idx, int currentPage) {
int content_cnt = boardDao.getCnt(content_board_idx);
// 전체글 갯수
Page p = new Page(content_cnt, currentPage, page_listcount, page_pa);
return p;
}
BoardController
주석 되어있던것 주석 해
@GetMapping("/main")
public String main(@RequestParam("board_info_idx") int board_info_idx,
@RequestParam(value = "page", defaultValue = "1") int page,
Model model) {
model.addAttribute("board_info_idx", board_info_idx);
String boardName = boardService.getBoardName(board_info_idx); // 팀명 추출 메소드
model.addAttribute("boardName", boardName);
List<Content> contentLi = boardService.getContent(board_info_idx, page);
model.addAttribute("contentLi", contentLi); // 게시글 목록
Page pbean=boardService.getCnt(board_info_idx, page);
model.addAttribute("pbean", pbean); //
model.addAttribute("page", page); //
return "board/main";
}
Board/main.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" %>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="root" value="${pageContext.request.contextPath }/"/>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Fighting, Our Class</title>
<!-- Bootstrap CDN -->
<link rel="stylesheet"
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css">
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.0/umd/popper.min.js"></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.0/js/bootstrap.min.js"></script>
</head>
<body>
<c:import url="/WEB-INF/views/include/top_menu.jsp"/>
<div class="container" style="margin-top: 100px">
<div class="card shadow">
<div class="card-body">
<h3 class="card-title">${boardName }</h3>
<table class="table table-hover" id="board_list">
<thead>
<tr>
<th class="text-center d-none d-md-table-cell">Post Number</th>
<th class="w-50">Title</th>
<th class="text-center d-none d-md-table-cell">Writer</th>
<th class="text-center d-none d-md-table-cell">Date</th>
</tr>
</thead>
<tbody>
<c:forEach var='obj' items="${contentLi }">
<tr>
<td class="text-center d-none d-md-table-cell">${obj.content_idx }</td>
<td><a href='${root }board/read?board_info_idx=${board_info_idx}&content_idx=${obj.content_idx}&page=${page}'>${obj.content_subject }</a></td>
<td class="text-center d-none d-md-table-cell">${obj.content_writer_name }</td>
<td class="text-center d-none d-md-table-cell">${obj.content_date }</td>
</tr>
</c:forEach>
</tbody>
</table>
<div class="d-none d-md-block">
<ul class="pagination justify-content-center">
<c:choose>
<c:when test="${pBean.prePage <= 0 }">
<li class="page-item disabled">
<a href="#" class="page-link">Previous</a>
</li>
</c:when>
<c:otherwise>
<li class="page-item">
<a href="${root }board/main?board_info_idx=${board_info_idx}&page=${pBean.prePage}" class="page-link">Previous</a>
</li>
</c:otherwise>
</c:choose>
<c:forEach var='idx' begin="${pBean.min }" end='${pBean.max }'>
<c:choose>
<c:when test="${idx == pBean.currentPage }">
<li class="page-item active">
<a href="${root }board/main?board_info_idx=${board_info_idx}&page=${idx}" class="page-link">${idx }</a>
</li>
</c:when>
<c:otherwise>
<li class="page-item">
<a href="${root }board/main?board_info_idx=${board_info_idx}&page=${idx}" class="page-link">${idx }</a>
</li>
</c:otherwise>
</c:choose>
//첫번째 페이지에서 이전으로 못가게 막음
</c:forEach>
<c:choose>
<c:when test="${pBean.max >= pBean.pageCnt }">
<li class="page-item disabled">
<a href="#" class="page-link">Next</a>
</li>
</c:when>
<c:otherwise>
<li class="page-item">
<a href="${root }board/main?board_info_idx=${board_info_idx}&page=${pBean.nextPage}" class="page-link">Next</a>
</li>
</c:otherwise>
</c:choose>
// 마지막 페이지에 도달하면 멈춤
</ul>
</div>
<div class="text-right">
<a href="${root }board/write?board_info_idx=${board_info_idx}" class="btn btn-primary">Write</a>
</div>
</div>
</div>
</div>
<c:import url="/WEB-INF/views/include/bottom_menu.jsp"/>
</body>
</html>
728x90
'Frameworks > Spring' 카테고리의 다른 글
[Spring] Board with xml (Ajax) I (1) | 2024.05.20 |
---|---|
[Spring] BOARD CRUD 기능 설명 (0) | 2024.05.17 |
[Spring] Board CRUD (Board info, Board Modify) (0) | 2024.05.17 |
[Spring] Board CRUD (Modify, Update List, Page) (0) | 2024.05.16 |
[Spring] Board CRUD (Login(orNot) TopMenu/ Modify) (0) | 2024.05.16 |