본문 바로가기
JAVA

Spring Boot 게시판 상세내용 조회 구현

by fouink 2022. 8. 31.

 - Controller

/**
 * 게시글 상세내용 응답 매핑 함수
 * @param team_id
 * @return
 */
@GetMapping("/api/get_board")
public ResponseEntity<?> getBoard(
        @RequestParam("team_id") Long team_id) {

    OneBoardResponseDTO oneBoard = boardService.getOneBoard(team_id);

    return ResponseEntity.ok(oneBoard);
}

 

파라미터로 'team_id' 값을 받으면 해당 id값과 일치하는 게시판 상세 내용으로 들어가는 GetMapping이다

 

- Service

 

/**
 * 게시판 상세내용 응답함수
 * @param team_id
 * @return
 */
@Override
public OneBoardResponseDTO getOneBoard(Long team_id) {

    Optional<BoardEntity> boardEntity = boardRepository.findById(team_id);

    OneBoardResponseDTO oneBoardResponseDTO = OneBoardResponseDTO.builder()
            .board_id(boardEntity.get().getId())
            .title(boardEntity.get().getTitle())
            .content(boardEntity.get().getContent())
            .writer(boardEntity.get().getUserInfoEntity().getNickname())
            .createdDate(boardEntity.get().getCreatedDate())
            .viewCnt(boardEntity.get().getViewCnt())
            .build();

    return oneBoardResponseDTO;
}

 

응답 DTO에 게시판 상세내용을 담아준다.

BoardEntity는 UserInfoEntity 테이블을 참초하고있는데 여기서 findby를 하게 되면 UserInfoEntity 도 같이 select문이 날라가기 때문에 다시 UserInfo 테이블을 조회할 필요가 없다. 

 

 

 - Postman 응답 결과

 

 

 - thmyleaf Controller

/**
 * 타임 리프 게시판 상세내용 화면
 * @param model
 * @param team_id
 * @return
 */
@GetMapping("/thmyleaf/get_board")
public String getBoard(
        Model model,
        @RequestParam("team_id") Long team_id) {

    OneBoardResponseDTO oneBoard = boardService.getOneBoard(team_id);

    model.addAttribute("board", oneBoard);

    return "boardDetail";
}

 

 

 

 

 - thmyleaf html 출력 결과

 

 

 

댓글