관리 메뉴

bright jazz music

[bootBoard] N:1(다대일) 연관관계: 10-3 화면처리: 게시물 조회 처리 본문

Framework/Spring

[bootBoard] N:1(다대일) 연관관계: 10-3 화면처리: 게시물 조회 처리

bright jazz music 2022. 10. 9. 22:07

1. BoardController에 조회를 위한 코드 추가

 

//BoardController.java
package com.example.bootboard.controller;


@Controller
@RequestMapping("/board/")
@Log4j2
@RequiredArgsConstructor
public class BoardController {
    private final BoardService boardService;

	...    
    
    //조회
    @GetMapping("/read")
    public void read(@ModelAttribute("requestDTO") PageRequestDTO pageRequestDTO,
                     Long bno, Model model) {
        
        log.info("bno: " + bno);
        BoardDTO boardDTO = boardService.get(bno);
        
        log.info(boardDTO);
        model.addAttribute("dto", boardDTO);
    }
	
    ...

}

 

 

2. 게시글 조회를 위한 페이지 생성read.html

read.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">

<th:block th:replace="~{/layout/basic :: setContent(~{this::content} )}">

    <th:block th:fragment="content">

        <h1 class="mt-4">Board Read Page</h1>

        <div class="form-group">
            <label >Bno</label>
            <input type="text" class="form-control" name="gno" th:value="${dto.bno}" readonly >
        </div>

        <div class="form-group">
            <label >Title</label>
            <input type="text" class="form-control" name="title" th:value="${dto.title}" readonly >
        </div>
        <div class="form-group">
            <label >Content</label>
            <textarea class="form-control" rows="5" name="content" readonly>[[${dto.content}]]</textarea>
        </div>
        <div class="form-group">
            <label >Writer</label>
            <input type="text" class="form-control" name="writer" th:value="${dto.writerName}" readonly>
        </div>
        <div class="form-group">
            <label >RegDate</label>
            <input type="text" class="form-control" name="regDate" th:value="${#temporals.format(dto.regDate, 'yyyy/MM/dd HH:mm:ss')}" readonly>
        </div>
        <div class="form-group">
            <label >ModDate</label>
            <input type="text" class="form-control" name="modDate" th:value="${#temporals.format(dto.modDate, 'yyyy/MM/dd HH:mm:ss')}" readonly>
        </div>

        <a th:href="@{/board/modify(bno = ${dto.bno}, page=${requestDTO.page}, type=${requestDTO.type}, keyword =${requestDTO.keyword})}">
            <button type="button" class="btn btn-primary">Modify</button>
        </a>

        <a th:href="@{/board/list(page=${requestDTO.page} , type=${requestDTO.type}, keyword =${requestDTO.keyword})}">
            <button type="button" class="btn btn-info">List</button>
        </a>


    </th:block>

</th:block>

 

 

3. 결과

게시글 클릭 시 조회 페이지로 이동한다.

 

댓글과 관련된 작업은 모두 게시물의 조회 페이지에서 댓글의 숫자를 보여주거나 댓글을 입력하는 화면 등을 추가하게 된다.

 

 

 

Comments