이제는 게시판에 들어가서 게시글의 내용을 상세보기 할수 있도록 할 예정입니다.
상세보기 페이지를 만들고, 컨트롤러를 만들어서 상세보기를 할수 있도록 합니다.
게시판 리스트를 뽑았기 때문에, 쉽게 만들수 있습니다.
JSP페이지를 만들고 - 컨트롤러에서 연결시켜준 다음 - DAO에서 데이터를 뽑아온다
가 전부인지라 CURD를 전부 한글에 올리는게 낫지 않을까 했는데, 블로그 글로 정리하려니 시간이 많이 걸릴 것 같아 나누어서 글을 올리게 되었습니당.
JSP페이지를 만들어봅시다.
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<title>게시글 상세보기</title>
</head>
<body>
<h1>
</h1>
</body>
</html>
짠! 텅 빈 게시글 상세보기 페이지 완성~!
이제 컨트롤러에서 연결시켜봅시다.
@RequestMapping("/board/detailview")
public ModelAndView detailview(ModelAndView mv, Board2DTO dto) {
System.out.println("detailview 페이지 진입하였습니다.");
mv.setViewName("detailview");
return mv;
}
이렇게 하고 board 페이지 뒤에 '/detailview'를 추가하면....
페이지 진입에 성공하였습니다.
jsp와 java의 연결 성공했습니다. DAO에서 데이터를 뽑아오고, 이쁘게 정리만 하면 끝!
하지만 그러려면 게시글을 한개의 정보만 뽑아야 하니, 그것을 특정할수 있는 정보를 이전 페이지에서 가져와야 합니다. 가장 만만한 것이 '게시글 번호'! -를- 가져옵시다. 그러려면 위 컨트롤러에서 int인 boardno를 파라미터로 꼭 가져오도록 설정해놓겠습니다.
@RequestMapping("/board.com/detailview")
public ModelAndView detailview(ModelAndView mv, Board2DTO dto,int boardno) {
System.out.println("detailview 페이지 진입하였습니다.");
System.out.println("boardno의 값 : "+boardno);
mv.setViewName("detailview");
return mv;
}
컨트롤러에서 설정했으니, boardno가 없으면 오류가 날 겁니다.
그러니까 이전 페이지(게시판 리스트 페이지)를 통해서 들어오도록 만들겁니다.
tr에 링크를 걸 예정이고, tr에 마우스가 들어가게 되면 강조되도록 할 예정입니다.
1. tr에 링크걸기
tr의 시작태그에 여러 속성을 넣으면 됩니다. 스타일에 맞게 수정하셔서 넣으면 됩니다.
<tr style="cursor: pointer;" onclick="location.href='board.com/detailview?boardno=${list.boardno}' ">
2. 테이블에 마우스 근접시 강조하기
부트스트랩을 이용해서 간단하게 할 수 있습니다.
<table class="table table-hover" style="width: 50%; margin: auto;">
테이블의 시작부분에 table-hover 옵션을 추가했습니다.
22번글 진입 완료! 이제 boardno를 통해 dao로 전달해주면, 그 값을 통해 db에서 빼오면 됩니다!
컨트롤러
@RequestMapping("/board.com/detailview")
public ModelAndView detailview(ModelAndView mv, Board2DTO dto,int boardno) {
System.out.println("detailview 페이지 진입하였습니다.");
System.out.println("boardno의 값 : "+boardno);
List<Board2DTO> boardlist = service.detailview(boardno);
System.out.println(boardlist);
mv.addObject("boardlist", boardlist);
mv.setViewName("detailview");
return mv;
}
서비스
public List<Board2DTO> detailview(int boardno) {
List<Board2DTO> result = dao.detailview(boardno);
return result;
}
DAO
public List<Board2DTO> detailview(int boardno) {
List<Board2DTO> result = session.selectList("boarddate.detailview", boardno);
return result;
}
SQL.XML
<select id="detailview" resultType="com.board2.DTO.Board2DTO">
select title,content,boarddate,hit,boardno from boardtable
where boardno=#{boardno}
</select>
을 추가했더니...
이제 이 글의 내용을 출력할 jsp 페이지만 정리하면 끝!
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!DOCTYPE html>
<html>
<head>
<title>게시글 상세보기</title>
</head>
<body>
<h1>
</h1>
<table class="table table-hover" style="width: 50%; margin: auto;">
<c:forEach var="list" items="${boardlist}">
<tr><th>글 제목</th><td>${list.title }</td></tr>
<tr><th>글 내용</th><td>${list.content }</td></tr>
<tr><th>글 번호</th><td>${list.boardno }</td></tr>
<tr><th>작성일</th><td>${list.boarddate }</td></tr>
<tr><th>조회수</th><td>${list.hit }</td></tr>
</c:forEach>
</table>
</body>
</html>
이렇게 작성을 하면...
'공부공부' 카테고리의 다른 글
게시판 만들기 13.게시글 삭제 (0) | 2020.09.07 |
---|---|
게시판 만들기 12.게시판 수정 (0) | 2020.08.26 |
게시판 만들기 10.부트스트랩 ,테이블 정리 (0) | 2020.08.25 |
게시판 만들기 9.페이징 따라하기 (0) | 2020.08.24 |
게시판 만들기 8. 뷰단 만들기 (0) | 2020.08.22 |