게시판/게시판 그룹 별 게시글 개수/게시판 개수를 세는건 db에 테이블도 따로 있어서 다른 방법으로 했는데 게시판 그룹 기능을 나중에 추가하려다 보니 기능 내에서 갯수를 세는 걸 추가하게 되었다.
db와 연동해서 출력하는 코드는 정리하면서 다음글에 올릴예정!
현재 프로젝트의 계층구조
BoardController.java
// ######## 게시판 그룹 목록 조회 ########
@GetMapping("/intranet/board_group/list")
public String boardgroupList(@ModelAttribute("params") BoardGroupVo params, Model model) {
List<BoardGroupVo> boardgroupList = boardGroupService.retrievePageBoardGroupList(params);
for (BoardGroupVo boardgroup : boardgroupList) {
int groupNo = boardgroup.getGroupNo();
int boardCount = boardService.retrieveBoardGroupCount(groupNo);
boardgroup.setBoardCount(boardCount);
}
// DB에 없으니까 여기서 게시판 그룹에 속한 게시판 개수 세줌
model.addAttribute("boardgroupList", boardgroupList);
return "page/intranet/board_group_list";
}
(위아래 코드는 생략했다)
게시판 개수를 세는 기능을 추가하기 위해서 boardgroup이 아닌 BoardService, Dao, DaoImpl, mapper에 코드를 추가했다
추가한 코드는 다음과 같다
BoardDao.java
//게시판 그룹별 게시판 개수 조회
int selectBoardGroupCount(int groupNo);
BoardDaoImpl.java
//게시판 그룹별 게시판 개수 조회
@Override
public int selectBoardGroupCount(int groupNo) {
return this.sqlSessionTemplate.selectOne("BoardDao.selectBoardGroupCount", groupNo);
}
BoardService.java
// 게시판 그룹별 게시판 개수 조회
int retrieveBoardGroupCount(int groupNo);
BoardServiceImpl.java
//게시판 그룹별 게시판 개수 조회
@Override
public int retrieveBoardGroupCount(int groupNo) {
return this.boardDao.selectBoardGroupCount(groupNo);
}
BoardMapper-xml
<!--게시판 그룹별 게시판 개수 조회 -->
<select id="selectBoardGroupCount" parameterType="int" resultType="int">
SELECT COUNT(*) FROM board WHERE bo_group_no = #{groupNo}
</select>
========================================================
// ######## 게시판 그룹 목록 조회 ########
@GetMapping("/intranet/board_group/list")
public String boardgroupList(@ModelAttribute("params") BoardGroupVo params, Model model) {
List<BoardGroupVo> boardgroupList = boardGroupService.retrievePageBoardGroupList(params);
for (BoardGroupVo boardgroup : boardgroupList) {
int groupNo = boardgroup.getGroupNo();
int boardCount = boardService.retrieveBoardGroupCount(groupNo);
boardgroup.setBoardCount(boardCount);
}
// DB에 없으니까 여기서 게시판 그룹에 속한 게시판 개수 세줌
model.addAttribute("boardgroupList", boardgroupList);
return "page/intranet/board_group_list";
}
에로사항 및 for each문으로 boardgroupList 객체에 boardCount(게시판 개수)를 담아서 보내는 이유 :
처음 내 생각은 그냥 BoardController에 model.addAttribute("boardCount", boardCount); 만 추가해서 보내면 될줄 알았다. 그런데 이렇게 하면 값이 하나만 전달된다ㅠ. 내가 원하는건
----------------------------------------------------------------
게시판 그룹 1 | 해당게시판 그룹에 속한 게시판 개수
게시판 그룹 2 | 해당게시판 그룹에 속한 게시판 개수
게시판 그룹 3 | 해당게시판 그룹에 속한 게시판 개수
게시판 그룹 4 | 해당게시판 그룹에 속한 게시판 개수
-----------------------------------------------------------------
요런 식으로 출력되는 것이기 때문에 for each문으로 boardgroupList 객체에 값을 같이 담아서 보내줘야 한다!!
'Spring boot > 3차 프로젝트 중 알게 된 것!' 카테고리의 다른 글
[3차 프로젝트] 2022-01-03일자 에로사항....Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: (0) | 2022.01.07 |
---|---|
[3차 프로젝트] 게시판 별 게시글 개수 출력하기 // 계층 구조 수정 (0) | 2022.01.07 |
[3차 프로젝트] Intellij import가 제대로 안되거나 잘 돌아가던게 갑자기 빨간 줄이 생길 때 해결 법 (0) | 2022.01.07 |
[3차 프로젝트 ] @ResponseBody과 mapping에 대해 간단한 정리 (0) | 2022.01.07 |
[3차 프로젝트]Ajax로 DB에 있는 게시판 목록 끌어오기 (0) | 2022.01.07 |