728x90
흐름
1. 클라이언트가 HTTP 메서드로 특정 게시글의 삭제 요청 (상세 페이지에 Delete 버튼 추가)
2. 삭제 요청을 받은 컨트롤러가 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제 (ArticleController에 delete() 메서드 추가, @Getmapping 사용 - findById(id) 메서드로 id 찾은 후 null이 아닌지 확인하고 null이 아니라면 삭제)
3. 삭제 완료됐다면 클라이언트를 결과 페이지로 리다이렉트 및 삭제 메시지 남기기 (삭제 후 목록으로 돌아가야하므로 redirect:/articles 설정)
삭제 완료 메세지 남기기
RedirectAttributes 객체의 addFlashAttribute() 메서드 사용.
addFlashAttribute() : 리다이렉트 시점에서 한 번만 사용할 휘발성 데이터를 등록함.
객체명.addFlashAttribute(넘겨_주려는_키_문자열, 넘겨_주려는_값_객체);
게시글 삭제 후 목록 페이지로 돌아가므로 index,mustache에 삭제 메세지 msg 코드 넣어줘야함. (헤더 안에 메세지를 넣고 싶으므로 header.mustache에 작성함)
{{#msg}}
<div class="alert alert-primary alert-dismissible">
{{msg}}
<button type="button" class="btn-close" data-bs-dismiss="alert"
aria-label="Close"></button>
</div>
{{/msg}}
CRUD가 드디어 다 끝났다. CRU까지 하면서 자잘한 오류들 고쳤더니 delete는 딱히 오류나지 않고 빨리 끝났다.
728x90
'코딩 자율학습단 > 학습 일지' 카테고리의 다른 글
[DAY 10] REST API와 JSON (0) | 2024.08.09 |
---|---|
[DAY 9] CRUD와 SQL 쿼리 (0) | 2024.08.08 |
[DAY 7] 게시판 CRUD : Update - form 태그에서 PATCH 메서드 이용하는 방법 / Lombok 인식 에러 고치기 (0) | 2024.08.07 |
[DAY 6] 페이지 연결 - 링크와 리다이렉트 (0) | 2024.08.05 |
[DAY 5] 게시판 CRUD : Read (0) | 2024.08.02 |