페이지 구성 :

http 1.0 방식으로 진행하고 있기에 (연습용) insert, update, delete 모두 method 방식을 post로 작성하였으며,
세가지 역할을 모두 post로 통합하였기 때문에 추가로 어떤 행동을 진행하여야 할지를
‘/board/id값/delete’ 와 같이 작성하여 컨트롤러에서 구분할 수 있도록 작성하였습니다. (옛날 방식)
Controller :
@PostMapping("/board/{id}/delete")
public String delete(@PathVariable("id") int id) {
boardService.게시글삭제(id);
return "redirect:/";
}
- 이 메서드는 POST 요청을 통해 특정 게시글을 삭제합니다. 클라이언트가
/board/{id}/delete
경로로 POST 요청을 보내면, 해당id
의 게시글이 삭제되고, 클라이언트는 메인 페이지로 리다이렉트됩니다.
Service :
@Transactional
public void 게시글삭제(int id) {
boardRepository.delete(id);
}
없는 아이디 값을 강제로 삭제하려고 하면 당연히 삭제되지 않을 것이고, 이에 대한 예외 처리를 진행하는 것이 옳은 방식이지만 해당 예제에서는 생략하였습니다.
Repository :
public void delete(int id) {
Query q = em.createNativeQuery("delete from board_tb where id = ?");
q.setParameter(1, id);
q.executeUpdate();
}
이전에 작성한 코드에서 쿼리문(id 값을 이용하여 특정 행을 제거)만 delete 문으로 바뀌었습니다.
작성 내용 테스트하기

5번 게시글의 상세페이지로 이동하여 삭제 버튼을 클릭하였습니다.(수정 버튼을 미리 만든 상태)

>>>>>>>>>>>>>>>>>

의도한대로 5번 게시글이 정상적으로 삭제된 것을 확인할 수 있습니다.
http 1.0 방식으로 진행하고 있기에 (연습용) insert, update, delete 모두 method 방식을 post로 작성하였으며,
세가지 역할을 모두 post로 통합하였기 때문에 추가로 어떤 행동을 진행하여야 할지를
‘/board/id값/delete’ 와 같이 작성하여 컨트롤러에서 구분할 수 있도록 작성하였습니다. (옛날 방식)
Share article