게시글 상세 페이지 만들기

친친·2022년 10월 22일
0

이번 과정은 여러 게시글 리스트에서 게시글 하나를 클릭했을 때 보여질,
각각의 게시글 상세 페이지를 구현하는 과정이다
전체적인 흐름은 다음과 같다

  • 요청경로를 boardview.html 뷰로 맵핑하고 Model 객체에 데이터를 담아 보낼 메서드, boardView()를 Controller에 추가한다
  • DB에서 해당 데이터를 가져와서 반환하는 메서드, boardView()을 Service에 추가한다.
  • 게시글 상세 페이지 뷰, boardview.html를 만든다.

//boardController.java
	...
    @GetMapping("/board/view")
    public String boardView(Model model, Integer id){

        model.addAttribute("board", boardService.boardView(id));
        return "boardview";
    }

Controller가 Service에서 받아온 value를 Model에 담아 "board"라는 이름으로 뷰(boardview.html)로 전달한다.


//boardService.java
	...
    public Board boardView(Integer id) {

        return boardRepository.findById(id).get();
    }

findById().get()

findById()는 반환형이 Optional이므로 이를 다시 get()을 이용하여 value를 반환한다
Optional이란?


//boardview.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>게시글 상세 페이지</title>
</head>
<body>

<h1 th:text="${board.title}">제목입니다</h1>
<p th:text="${board.content}">내용이 들어갈 부분입니다</p>

</body>
</html>

thymeleaf를 이용해 Model에 담겨있는 데이터를 꺼내서 뷰에 뿌려준다.
그 결과는 아래와 같다.




[출처] 위 내용은 한코딩님의 강의를 보고 정리한 내용입니다

https://youtu.be/XytVcdgiVRk

profile
웹개발 블로그

0개의 댓글