이번엔 DB에 있는 데이터들을 나타내는 게시글 상세보기 만들어 보자.
게시글 상세보기는 목록리스트에 있는 글을 클릭하면 그에 해당하는 정보를 들고와 상세보기 페이지에 나타내는것이다.
list.jsp에서 번호를 a태그를 추가해 주자. (여기서는 번호를 기준으로 잡았지만, 타이틀 등 다른걸로 기준을 잡아도 상관이 없다)
list.jsp
<h1>여기는 LIST 페이지 입니다.</h1>
<form action="${contextPath }/member/listArticles.do" method="post">
<div><h2>?(나중에 총 갯수)</h2>개의 상품이 조회되었습니다</div>
<table>
<tr>
<td>번호</td>
<td>이름</td>
<td>아이디</td>
</tr>
<c:forEach var="tistoryList" items="${tistoryList}">
<tr>
<!-- a태그 클릭시 viewContent.do를 호출한다 -->
<td><a href="${contextPath }/member/viewContent.do?no=${tistoryList.no}">${tistoryList.no }</a></td>
<td>${tistoryList.username }</td>
<td>${tistoryList.id }</td>
</tr>
</c:forEach>
</table>
</form>
Controller.java
if(action.equals("/viewContent.do")) {
int no = Integer.parseInt(request.getParameter("no"));
TistoryVO vo = new TistoryVO();
vo = tistoryService.readContent(no);
if(vo == null) {
System.out.println("vo detail fail");
}
request.setAttribute("vo", vo);
nextPage="/list/viewContent.jsp";
}
Controller에서 list.jsp에서 a태그에 걸려있는 viewContent.do를 받아온다.
이때 반드시 리스트 페이지의 "no"을 받아 int형으로 형변환을 한다.
vo를 request저장영역에 세팅한후 viewContent.jsp로 다시 보내고 있다.
Service.java
public TistoryVO readContent(int no) {
TistoryVO tistoryVO = tistoryDAO.selectContent(no);
return tistoryVO;
}
DAO.java
//readContent
public TistoryVO selectContent(int no) {
TistoryVO tistoryVO = null;
try {
conn = DBConnection.getConnection();
/* 파라미터에서 받아온 no값에 맞는 하나의 ROW만 DB에서 받아온다 */
String query = "SELECT * FROM class WHERE no = ?";
pstmt = conn.prepareStatement(query);
pstmt.setInt(1, no);
rs = pstmt.executeQuery();
if(rs.next()) {
tistoryVO = new TistoryVO();
tistoryVO.setNo(rs.getInt("no"));
tistoryVO.setUsername(rs.getString("username"));
tistoryVO.setId(rs.getString("id"));
}
return tistoryVO;
} catch (Exception e) {
System.out.println("selectContent : " + e.toString());
}finally {
freeResource();
}
return tistoryVO;
}//end of selectContent
매개변수로 받아온 no의 값에 맞는 하나의 열을 가져오는 DAO 메소드이다.
content.jsp
<c:set var="vo" value="${vo }" />
<h1>여기는 ${vo.no }번 게시판 상세보기 페이지 입니다.</h1>
<c:out value="${vo }"></c:out>
<table>
<tr>
<td>번호</td>
<td>이름</td>
<td>아이디</td>
</tr>
<tr>
<td>${vo.no }</td>
<td>${vo.username }</td>
<td>${vo.id }</td>
<tr>
</table>
게시판 상세보기 페이지이다. request 저장영역에 있던 vo 값을 JSTL문법을 통해 나타낼수 있다.
20번 글을 클릭하면 이렇게 20번창에 대한 글이 나온다.
MVC2 Model 게시판 (CRUD) - 게시글 수정하기 (UPDATE) - (2) (0) | 2021.01.27 |
---|---|
MVC2 Model게시판 (CRUD) - 게시글 수정하기 (UPDATE) - (1) (0) | 2021.01.26 |
MVC Model2 게시판 (CRUD) - 목록생성 (목록 기능 구현) (0) | 2021.01.18 |
MVC Model2 게시판 (CRUD) - Create 생성 (0) | 2021.01.17 |
(MVC Model2) JAVA/JSP MVC2 모델부터 알아보자!! (0) | 2021.01.14 |