[Spring Boot + JPA + MySQL] 게시글 수정 & 삭제

Junseo Kim·2020년 3월 2일
1

이어서 게시글 수정, 삭제 기능을 추가해보려고 한다.

수정, 삭제 기능은 디테일 페이지와 마찬가지로, id값을 받아서 처리한다.

게시글 수정

Controller

detail 페이지에서 수정 버튼을 누르면 '/post/edit/id값' 으로 요청이 들어온다.

디테일 페이지에서 썼던 getPost를 그대로 사용한다. 이전 데이터 값을 유지한 상태에서 수정된 부분만 다시 저장해야하기 때문이다.

게시글의 데이터를 가지고 update.html로 보낸다.

디테일 페이지에서 수정 버튼을 누르면 게시글의 데이터가 그대로 유지된채로 값을 바꿀 수 있는 화면으로 이동한다.

저 화면에서 값을 변경한 후, 수정 버튼을 누르면 DB에 새로운 데이터를 저장해줘야한다.

해당 버튼을 누르면 put 형식으로 '/post/edit/id값'으로 요청이 온다.

글쓰기를 구현할 때, 구현했던 savePost를 이용하여 DB에 새로 저장을 한다.

*이유는 아직 잘 모르겠지만, HiddenHttpMethodFilter를 Bean으로 등록하지 않으면 @PutMapping과, @DeleteMapping이 작동하지 않았다. 따라서 메인 클래스에 HiddenHttpMethodFilter를 Bean으로 등록해주었다.

수정 버튼을 눌러 수정하면, 수정된 정보가 반영됨을 볼 수 있다.

게시글 삭제

Controller

디테일 페이지에서 삭제 버튼을 누르면 '/post/id값'으로 delete 요청이 들어온다.

deletePost를 사용해서 게시글 id로 DB에서 게시글을 삭제한다. 실제 구현은 Service에서 한다.

Service

repository의 deleteById를 사용해서 넘겨받은 id를 이용해서 DB에서 삭제해준다.

실행 결과

삭제 버튼을 누르면 DB에서 삭제됨을 볼 수 있다.

reference: https://victorydntmd.tistory.com/327

0개의 댓글