Project
[Project - 게시판 / spring boot] Board delete / 조회수 구현
sweetychocoding
2024. 2. 21. 11:56
728x90
delete를 구현 완료하였다.
다른 코드들과 다르게 삭제하는 것은 신중할 필요가 있다고 생각하여
js를 통해 alert창이 뜨도록 구현했다.
코드는 다음과 같다.
Controller
// Delete =====================================================
@PostMapping("/boardDelete/{board_id}")
public ResponseEntity<?> boardDelete(@PathVariable("board_id") int id) {
Board entity = boardService.selectDetail(id);
if (entity != null) {
entity.setBoard_deldate(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
entity.setBoard_delyn('Y');
boardService.save(entity);
}
return ResponseEntity.ok().build();
}
나는 논리적 삭제를 구현했기 때문에
delete메서드를 사용하지 않았다.
그 대신에 삭제버튼을 누른 시간과 삭제 여부를 N 에서 Y로 바꿔주었다.
jsp
<c:if test="${sessionScope.loginUser.useremail == requestScope.boardDetail.useremail}">
<a class="m_button" href="boardDetail?jCode=U&board_id=${requestScope.boardDetail.board_id}">수정</a>
<button onclick="axboardDelete(${requestScope.boardDetail.board_id})" id="${requestScope.boardDetail.board_id}">삭제</button>
</c:if>
그리고 삭제와 수정은 해당 로그인된 유저와 게시글을 쓴 유저가 동일한 경우에만 가능해야 하기 때문에
if문을 넣어주어 로그인한 유저와 게시글을 쓴 유저가 다를 경우에는
삭제, 수정 버튼이 보이지 않도록 구현하였다.
조회수
조회수 같은 경우에는 게시물 리스트들에서 상세페이지를 눌렀을 때 조회수가 증가하는 것이기 떄문에
따로 메서드를 만들지 않고 그냥 detail 을 처리하는 controller 메서드가 실행될 때 board_views 의 컬럼을 +1 시켜주었다.
// Detail =====================================================
@GetMapping("/boardDetail")
public String getBoardDetail(Model model, Board entity, HttpServletRequest request) {
entity = boardService.selectDetail(entity.getBoard_id());
if ("U".equals(request.getParameter("jCode"))) {
model.addAttribute("boardDetail", entity);
return "board/boardUpdate";
} else {
entity.setBoard_views(entity.getBoard_views() + 1);
model.addAttribute("boardDetail", entity);
boardService.save(entity);
return "board/boardDetail";
}
} // getBoardDetail()
그리고 이어서 좋아요를 구현하려고 했는데
테이블 없이 구현하려고 보니.... 이걸 어떻게 구분해야 될 지 막막하
좋아요를 관리하는 테이블을 추가하게 되었다.
좋아요에 대한 내용은 다음 게시글에서 쓰도록 하겠다.
728x90