게시글 상세보기 기능

  1. 게시글 상세보기 버튼 클릭 시 /board/{id} URI로 GET요청을 보냅니다.
  2. /board/{id} 요청에 응답하기 위해 BoardController에 메서드를 생성합니다.
  3. 상세보기를 위한 view는 board/detail.html에서 생성합니다.

해당 순서에 따라 코드를 추가해보겠습니다.


board/layout.html

게시글 레이아웃에서 상세보기 버튼 클릭 시 /board/{id}GET요청을 보낼 수 있도록 코드를 추가 해줍니다.

URI에 게시글의 ID정보를 포함하여 GET 요청을 전송합니다.

<a th:href="@{/board/{id}(id = ${board.id})}" class="btn btn-primary">상세 보기</a>

다음으로 해당 요청에 응답할 메서드를 컨트롤러에 추가해줍니다.


BoardController.java

URI에 포함된 id 값을 @PathVariable 어노테이션을 사용하여 저장한 다음, 해당 id 값으로 게시글을 검색하여 모델에 담아 뷰 페이지로 전송합니다.

@GetMapping("/board/{id}")
public String boardDetail(@PathVariable int id, Model model){
    model.addAttribute("board", boardService.findBoardById(id));
    return "board/detail";
}

다음으로 view를 생성합니다.


board/detail.html

model에 담겨 전달된 정보를 Thymeleaf 문법을 사용하여 사용자에게 출력해줍니다.