게시글 삭제하기: Delete
게시판에서 데이터를 삭제하는 과정
1. 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청한다 : 클라이언트->컨트롤러
2. 삭제 요청을 받은 컨트롤러가 리파지토리를 이용해 DB에 접근, 찾고, 삭제
3. 삭제가 완료 되었다면 클라이언트를 결과 페이지로 리다이렉트
삭제 완료 메세지도 띄워주면 더 좋겠다. -> RedirectAttributes 클래스의 addFlashAttribute() : 일회성 데이터등록
삭제되었다는 메세지 일회용이니까 한번 띄우고 사라짐
데이터 삭제하기
/articles에 접속하면 index.mustache 화면이 보이는 중이다.
이 때 게시글 하나를 선택해서 상세페이지 show.index 에 접속, 삭제할 수 있는 버튼을 추가한다.
기존에 하던거 처럼 a href 를 이용해서 삭제할 수 있는 URl을 만들어 준다.
btn btn-danger로 설정하면 노랑 버튼이 나온다.
이제 상세 페이지에 버튼이 생겼다. 하지만 아직 누르면 에러페이지로 이동한다.
이제 이 버튼이 ref 하는 URL 을 처리해줄 컨트롤러를 추가 해야 한다.
컨트롤러는 getMapping으로 특정 id 의 delete URL을 입력받으면
일단 리파지토리에서 target을 가져온다.
target이 null이 아니라면 delete 메서드를 이용해서 리파지토리에서 지운다.
이때 지웠음을 확인 할 수 있도록 RedirectAttributes 클래스를 이용한다.
rttr.addFlashAttribute("msg", "삭제외었습니다.")는 타겟 데이터가 삭제되었을 때 일회용 메세지를 화면에 출력시켜 준다.
이 예제에서는 삭제 후 데이터 목록 index.mustache로 돌아가야 하므로
return redirect:/articles 로 가도록 한다.