<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>${board.boardTitle }</title>
</head>
<body>
<header>
<jsp:include page="../home.jsp" />
</header>
<table align="center" border="1" width="500">
<tr>
<td>제목</td>
<td>${board.boardTitle }</td>
</tr>
<tr>
<td>작성자</td>
<td>${board.boardWirter }</td>
</tr>
<tr>
<td>작성일</td>
<td>${board.bCreateDate }</td>
</tr>
<tr>
<td>내용</td>
<td>${board.boardContents }<br> <c:if
test="${board.boardRename ne null}">
<img alt="본문이미지"
src="/resources/buploadFiles/${board.boardRename }">
</c:if>
</td>
</tr>
<tr>
<td colspan="2">
<!--검색/일반의 경우 목록주소 --> <!-- 일반으로 상세 진입시 목록 --> <c:if
test="${empty searchValue }">
<input type="button" value="수정"
onclick="location.href='/board/modifyView.kh?boardNo=${board.boardNo}&page=${pageNow }';">
<button type="button"
onclick="location.href='/board/list.kh?page=${pageNow }';">목록</button>
</c:if> <!-- 검색 으로 상세 진입시 --> <c:if test="${searchValue ne null }">
<input type="button" value="수정"
onclick="location.href='/board/modifyView.kh?boardNo=${board.boardNo}&searchCondition=${searchCondition }&searchValue=${searchValue}&page=${pageNow }';">
<button type="button"
onclick="location.href='/board/search.kh?searchCondition=${searchCondition }&searchValue=${searchValue}&page=${pageNow }';">목록</button>
</c:if> <!-- 목록주소 태그 종료 -->
<button type="button" onclick="remove()">삭제</button>
</td>
</tr>
</table>
<!-- 댓글 목록 -->
<form action="/board/addReply.kh" method="post">
<input type="hidden" name="refBoardNo" value="${board.boardNo }">
<table align="center" width="500" border="1">
<tr>
<td><textarea rows="3" cols="55" placeholder="내용을 작성하세요"
name="replyContents" required="required"></textarea></td>
<td>
<button>등록하기</button>
</td>
</tr>
</table>
</form>
<table align="center" width="500" border="1">
<c:forEach items="${rList }" var="reply" varStatus="i">
<tr>
<td width="100">${reply.replyWirter }</td>
<td>${reply.replyContents }</td>
<td>${reply.rCreateDate }</td>
<td><button type="button">수정</button> <a href="#">삭제</a>
</tr>
</c:forEach>
</table>
</form>
<script>
function remove() {
event.preventDefault(); // 하이퍼링크 이동방지
if (window.confirm("게시물을 삭제하시겠습니까?")) {
location.href = '/board/remove.kh?page=${pageNow}';
}
}
</script>
</body>
</html>
/**
* 게시물 상세보기
* @param mv
* @param boardNo
* @param session
* @return
*/
@RequestMapping(value="/board/detail.kh", method = RequestMethod.GET)
public ModelAndView boardDetailView(ModelAndView mv,
@RequestParam ("boardNo") Integer boardNo,
@RequestParam(value="searchCondition", required=false) String searchCondition,
@RequestParam(value="searchValue", required=false) String searchValue,
@RequestParam(value="page", required=false) String pageNow,
HttpSession session) {
if(boardNo != null) {
Board board = bService.printOneVyNo(boardNo);
//1
List<Reply> rList= bService.PrintAllReply(boardNo);
session.setAttribute("boardNo", boardNo); // 세션에 boardNo가 추가된다, 현재 가지고 있는 세션은 유지된다.
try {
mv.addObject("board", board);
mv.addObject("searchCondition", searchCondition);
mv.addObject("searchValue", searchValue);
mv.addObject("pageNow", pageNow);
//2
mv.addObject("rList",rList);
mv.setViewName("/board/detail");
}catch (Exception e) {
mv.addObject("mgs",e.getMessage());
mv.setViewName("/common/errorPage");
}
}
else {
mv.addObject("msg","게시물 선택 오류");
mv.setViewName("/common/errorPage");
}
return mv;
}
@Override
public List<Reply> PrintAllReply(Integer boardNo) {
List<Reply> rList = bStore.selectAllReply(session,boardNo);
return rList;
}
@Override
public List<Reply> selectAllReply(SqlSessionTemplate session, Integer boardNo) {
List<Reply> rList = session.selectList("BoardMapper.selecAllreply", boardNo);
return rList;
}
<resultMap type="Reply" id="replyResultMap">
<id property="boardNo" column="BOARD_NO" />
<result property="replyNo" column="reply_no" />
<result property="refBoardNo" column="ref_board" />
<result property="replyContents" column="reply_contents" />
<result property="replyWirter" column="reply_writer" />
<result property="rCreateDate" column="r_create_date" />
<result property="rUpdateDate" column="r_update_date" />
<result property="rStatus" column="r_status" />
</resultMap>
<select id="selecAllreply" resultMap="replyResultMap">
select * from reply_tbl where ref_board = #{boardNo} and r_status = 'Y'
</select>
이제 컨트롤러에서 해당 List를 jsp로 내보내고 출력한다.