BoardService에 postDetail 추가하기
1 2 3 4 5 6
| public Board postDetail(int id){ return boardRepository.findById(id) .orElseThrow(()->{ return new IllegalArgumentException("글 상세보기 실패 : id를 찾지 못함"); }); }
|
findById를 사용하면 쉽게 처리할 수 있다~
컨트롤러에 메소드 추가
1 2 3 4 5 6
| @GetMapping("/board/{id}") public String findById(@PathVariable int id, Model model){
model.addAttribute("board", boardService.postDetail(id)); return "board/detail"; }
|
borad/detail.jsp 파일을 반환해야 한다.
index.jsp 수정하기
1 2 3 4 5 6 7 8 9
| <div class="container"> <c:forEach var="board" items="${boards.content}"> <div class="card m-2" > <div class="card-body"> <h4 class="card-title">${board.title}</h4> <a href="/board/${board.id}" class="btn btn-primary">상세보기</a> </div> </div> </c:forEach>
|
상세보기를 하이퍼링크로 연결하도록 하자.
detail.jsp 만들기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| <%@ page contentType="text/html;charset=UTF-8" language="java" %> <%@ include file="../layout/header.jsp"%>
<div class="container">
<button class="btn btn-secondary" onclick="history.back()">돌아가기</button> <button id="btn-update" class="btn btn-warning">수정</button> <button id="btn-delete" class="btn btn-danger">삭제</button> <br />
<div> <h3>${board.title}</h3> </div> <hr/> <div> <div>${board.content}</div> </div> <hr/> </div>
<script src = "/js/board.js"></script> <%@ include file="../layout/footer.jsp"%>
|
돌아가기, 수정, 삭제 버튼을 만들고, 모델의 글 제목과 글 내용을 가져온다.
(아직 수정과 삭제를 구현하지 않았다. 추후에 해보자.)