기본적으로 글 리스트는 그룹 번호(bgno)에 해당하는 내용들만 조회하면 된다.
따라서 다음 코드와 같이 기존 SELECT문의 WHERE절에 조건 하나만 추가해 주면 된다.
<sql id=”includeBoard”>
WHERE BGNO=#{bgno} AND BRDDELETEFLAG='N'
<if test="searchKeyword!=null and searchKeyword!='' and searchType!=''">
<foreach item="item" index="index" collection="searchTypeArr" separator=" OR " open="AND (" close=")">
${item} LIKE CONCAT('%', #{searchKeyword},'%' )
</foreach>
</if>
</sql>
board8.xml
이렇게 수정한 후 웹 브라우저에서 다음과 같이 실행하면 결과를 확인할 수 있다.
http://localhost:8080/board/board8List?bgno=1
파라미터인 그룹 번호(bgno)를 1이 아닌 다른 값을 넣어서 실행해 보면
데이터가 유무에 따라 다른 결과를 얻는 것을 확인할 수 있다.
이 외에 그룹 번호(bgno) 값이 없을 때 처리와
글 읽기/쓰기 시 그룹 번호(bgno)값을 넘겨 주는 코드가 필요하다.
다음 코드와 같이 컨트롤에서
그룹 번호가 없는 경우(null) 1을 기본값으로 넣어줬다.
@RequestMapping(value = "/board8List")
public String boardList(SearchVO searchVO, ModelMap modelMap) {
if (searchVO.getBgno() == null) {
searchVO.setBgno("1");
}
searchVO.pageCalculate( boardSvc.selectBoardCount(searchVO) ); // startRow, endRow
List<?> listview = boardSvc.selectBoardList(searchVO);
modelMap.addAttribute("listview", listview);
modelMap.addAttribute("searchVO", searchVO);
return "board8/BoardList";
}
Board8Ctr.java
간단하게 처리하기 위해 이렇게 처리했을 뿐이고,
이 방식 외에도 없는 그룹 번호일 경우 오류 메시지를 출력할 수도 있다.
글쓰기 링크에 다음과 같이 그룹번호(bgno)를 파라미터로 넘겨주는 코드를 추가한다.
<a href="board8Form?bgno=<c:out value="${searchVO.bgno}"/>">글쓰기</a>
BoardList.jsp
개념상 글 리스트에서 글 읽기로 가는 링크에도
파라미터를 추가해 주는 것이 맞지만 구현하지 않았다.
모든 게시물은 그룹번호(bgno)를 가지고 저장되고
글 읽기용 SELECT문(selectBoard8One)에서
그룹번호를 가지고 오도록 처리했기 때문이다.
'Java > 게시판 8: 멀티게시판' 카테고리의 다른 글
1. 멀티 게시판 준비 (0) | 2016.06.04 |
---|---|
3. 글 읽기 / 삭제 (0) | 2016.06.04 |
4. 글 쓰기/수정 (0) | 2016.06.04 |