본문 바로가기
카테고리 없음

스프링 부트 게시판 만들기-3 글 상세보기 페이지 만들기

by nono22 2023. 12. 28.

스프링 부트 게시판 만들기 - 3. 글 상세보기 페이지 만들기

이번 포스팅에서는 스프링 부트를 사용하여 게시판의 글 상세보기 페이지를 만드는 방법에 대해 알아보겠습니다.

1. 프로젝트 구조

먼저, 이전 포스팅에서 생성한 스프링 부트 프로젝트의 구조를 확인해야 합니다. 프로젝트는 일반적으로 다음과 같이 구성됩니다.

└── src
    ├── main
    │   ├── java
    │   │   └── com.example.board
    │   │       ├── controller
    │   │       ├── model
    │   │       └── repository
    │   └── resources
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com.example.board

2. 글 상세보기 기능

글 상세보기 기능을 구현하기 위해서는 다음과 같은 단계를 따라야 합니다.

2.1. Controller 작성

먼저, Controller 클래스를 작성해야 합니다. 해당 클래스는 사용자의 요청을 처리하고, DB에서 해당 글의 정보를 가져와야 합니다. 아래는 예시입니다.

@Controller
public class BoardController {

    private final BoardRepository boardRepository;

    @Autowired
    public BoardController(BoardRepository boardRepository) {
        this.boardRepository = boardRepository;
    }

    @GetMapping("/board/{id}")
    public String getBoardDetail(@PathVariable("id") Long id, Model model) {
        // DB에서 해당 글 정보 가져오기
        Board board = boardRepository.findById(id).orElse(null);

        // 모델에 데이터 추가
        model.addAttribute("board", board);

        return "board/detail";
    }

}

위 코드에서 BoardRepository는 DB에서 글 정보를 가져오기 위해 사용되는 Repository입니다.

2.2. View 작성

Controller에서 데이터를 전달받기 위해서는 적절한 View가 필요합니다. 해당 View를 작성하기 위해 templates 폴더 안에 board 폴더를 생성하고, detail.html 파일을 생성합니다. 아래는 예시입니다.

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>글 상세보기</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
    <h2>글 상세보기</h2>

    <table>
        <tr>
            <th>제목</th>
            <td th:text="${board.title}"></td>
        </tr>
        <tr>
            <th>작성자</th>
            <td th:text="${board.author}"></td>
        </tr>
        <tr>
            <th>내용</th>
            <td th:text="${board.content}"></td>
        </tr>
    </table>

    <!-- 기타 내용 -->
</body>
</html>

위 코드에서 Thymeleaf의 표현식을 사용하여 Controller에서 전달받은 데이터를 화면에 출력하고 있습니다.

3. 동작 확인

위의 코드를 작성하고 실행하면, http://localhost:8080/board/{id} 형태의 URL을 통해 글 상세보기 페이지에 접속할 수 있습니다. {id} 부분에는 조회하려는 글의 고유한 식별자가 들어가야 합니다.

이로써 스프링 부트를 사용하여 게시판의 글 상세보기 페이지를 구현하는 방법에 대해 알아보았습니다. 이전 포스팅에서 구현한 목록 페이지와 연동하여 완전한 게시판을 구현할 수 있습니다.

댓글