상세페이지에 댓글 리스트 자리 만들고....
상세페이지 controller에 댓글 리스트 부분만들고
@RequestMapping(value = "/board/detail.kh", method = RequestMethod.GET)
public ModelAndView boardDetailView(ModelAndView mv, @RequestParam("boardNo") Integer boardNo
, @RequestParam(value = "page", required = false) Integer page
, HttpSession session) { // 커리스트링으로 앞단에서 넘어왔기때문에 받아줄 객체/ int롤 받으면 null체크 안되서 integer로 받은것임
try {
Board board = bService.printOneByNo(boardNo);
List<Reply>rList=bService.printAllReply(boardNo);
// 게시글 상세조회를 할때 댓글리스트까지 가져오는 것
session.setAttribute("boardNo", board.getBoardNo());
// 세션에 boardNo를 저장-> 삭제하기 위해서
mv.addObject("rList", rList);//reply list를 전달함
mv.addObject("board", board);
mv.addObject("page", page);
mv.setViewName("board/detailView");
} catch (Exception e) {
mv.addObject("msg", e.toString());
mv.setViewName("/common/errorPage");
}
return mv;
}
List<Reply>rList=bService.printAllReply(boardNo);
리스트로 받아와야 한다........boardNo는 이미 있으니깐 다시 애용^^
mv.addObject("rList", rList);//reply list를 전달함
받아온 댓글리스트를 다시 상세페이지에 같이 전송
그다음 service와 store의 과정은 같다.
<resultMap type="Reply" id="ReplyResultMap">
<id property="replyNo" column="REPLY_NO"/>
<result property="replyNo" column="REPLY_NO"/>
<result property="refBoardNo" column="REF_BOARD_NO"/>
<result property="replyContents" column="REPLY_CONTENTS"/>
<result property="replyWriter" column="REPLY_WRITER"/>
<result property="rCreateDate" column="R_CREATE_DATE"/>
<result property="rUpdateDate" column="R_UPDATE_DATE"/>
<result property="rStatus" column="R_UPDATE_DATE"/>
</resultMap>
매핑주의사항....select와 별칭!!
selete할때 resultMap이 있어야 하니깐 위에 하나더 추가한다...근데 여기서 type="Reply" 은 놓쳤는데 저렇게 짧게 쓸수있는건 전에 했던 Mybatis-config. 매핑의 별칭 때문인거였다.....놓치지 말라구!!
<typeAliases>
<typeAlias type="com.kh.junspring.member.domain.Member" alias="Member"/>
<typeAlias type="com.kh.junspring.board.domain.Board" alias="Board"/>
<typeAlias type="com.kh.junspring.board.domain.Reply" alias="Reply"/>
</typeAliases>
상세페이지에서 댓글 리스트 출력 forEach
<!-- 댓글 목록 -->
<table align="center" width="500" border="1">
<c:forEach items="${rList }" var="reply">
<tr>
<td width="100">${reply.replyWriter }</td>
<td>${reply.replyContents }</td>
<td>${reply.rUpdateDate }</td>
<td>
<a href="#" onclick="modifyReply();">수정</a>
<a href="#">삭제</a>
</td>
</tr>
<tr id="remo" style="display:none;">
<td colspan="3"><input type="text" size="50" value="${reply.replyContents }"></td>
<td><button>수정</button></td>
</tr>
</c:forEach>
</table>
<c:forEach items="${rList }" var="reply">
맨날 새로운 for each문.....어쩐단 말이냐....ㅠㅠ
수정과 삭제는 다음주로....
'SPRING' 카테고리의 다른 글
AOP 심화 : 메소드 실행시간 (0) | 2022.10.07 |
---|---|
AOP 배우기 (0) | 2022.10.07 |
220916 스프링 게시판_댓글 8-1 댓글올리기 (1) | 2022.09.16 |
220915 스프링 게시판만들기 7-5 페이징:현재페이지 갖고 클래스이동 (0) | 2022.09.15 |
220915 스프링 게시판만들기 7-3 주소api (0) | 2022.09.15 |