스프링 부트/[스프링 부트] 게시판 무작정 따라하기

[스프링 부트] 게시판 무작정 따라하기 - 3. 게시글 상세 페이지

sungw00 2023. 3. 12. 17:01
728x90

BoardService에 게시글을 불러오는 boardView 추가

// 특정 게시글 불러오기
    public Board boardView(Integer id) {
        return boardRepository.findById(id).get();
    }

findById가 Optional 값으로 받아오는데, .get( )메서드로 처리하여 값을 가져옴

 

게시글의 상세 페이지를 볼 수 있도록 하는 boardview.html 작성

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.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>

BoardController에서 boardView 작성

@GetMapping("/board/view") // localhost:8080/board/view?id=1
    public String boardView(Model model, Integer id) {
        model.addAttribute("board", boardService.boardView(id));

        return "boardview";
    }

id값과 model을 받아오는데, 값을 넘겨줄 때는 매개변수에 Model을 정의해주어야 하기때문에 model을 받아온다.

받아온 id 값이 boardService의 boardView로 들어가서 해당하는 게시글의 번호를 찾는다.

 

가장 첫 번째 게시글과 가장 마지막 게시글을 조회


게시글 리스트의 글 제목을 입력하면 내용을 볼 수 있는 기능 추가

현재는 기능이 없어 텍스트로만 출력이 된다.

boardlist.html의 <tbody> 태그 내부의 내용을 다음과 같이 수정

            <tr th:each="board : ${list}">
              <td th:text="${board.id}">1</td> <!-- board의 id를 출력 -->
                <td>
                  <a th:text="${board.title}" th:href="@{/board/view(id=${board.id})}"></a>
                </td>
              </td> <!-- board의 title을 출력 -->
            </tr>

<a th:text="${board.title}" th:href="@{/board/view(id=${board.id})}"></a> 에 대한 설명

/board/view로 요청할 때 id의 값을 board.id로 설정해서 요청할 것임을 지시

728x90