삭제 버튼 추가 (reviewDetail.html)
<button class="delete-btn" type="button" onclick="delete_review()">리뷰 삭제</button> 클릭 시 호출할 함수 작성
review.js > delete_review() 함수 추가
var writer = /*[[${review.member.id}]]*/ '';
var viewer = /*[[${loginUser.id}]]*/ '';
var review_seq = /*[[${review.review_seq}]]*/ 0;
function delete_review() {
// 작성자와 현재 로그인한 사용자가 동일한지 확인
if (writer === viewer) {
swal.fire({
title: '정말로 삭제하시겠습니까?',
text: '삭제된 리뷰는 복구할 수 없습니다.',
icon: 'warning',
showCancelButton: true, // 취소 버튼 추가
confirmButtonText: '삭제',
cancelButtonText: '취소'
}).then((result) => {
if (result.isConfirmed) {
// 리뷰 삭제를 위한 URL로 이동 (GET 방식으로 전달)
window.location.href = '/delete?review_seq=' + review_seq;
}
});
} else {
swal.fire({
title: '리뷰 삭제 실패',
icon: 'warning',
text: '작성자만 삭제 가능합니다.',
confirmButtonText: '확인'
});
}
}
URL 매핑 및 삭제 처리 - Controller
@GetMapping("/delete")
public String deleteReview(@RequestParam("review_seq") int review_seq, HttpSession session, Model model) {
Member loginUser = (Member) session.getAttribute("loginUser");
Review review = reviewService.getReviewBySeq(review_seq);
// 로그인 상태 확인
if (loginUser == null) {
model.addAttribute("message", "로그인 페이지로 이동");
model.addAttribute("text", "리뷰 삭제를 위해 로그인해주세요.");
model.addAttribute("messageType", "info");
return "login/login"; // 로그인 페이지로 이동
}
// 작성자 확인
if (!review.getMember().getId().equals(loginUser.getId())) {
model.addAttribute("message", "삭제 불가");
model.addAttribute("text", "작성자만 리뷰를 삭제할 수 있습니다.");
model.addAttribute("messageType", "error");
return "redirect:/review"; // 리뷰 목록 페이지로 이동
}
// 리뷰 삭제 처리
reviewService.deleteReview(review);
// 리뷰 삭제 후 목록으로 리다이렉트
return "redirect:/review"; // 리뷰 목록 페이지로 이동
}
@RequestParam("review_seq") int review_seq 함수를 통해 전달받은 review_seq를 파라미터로 받아온다.
Review review = reviewService.getReviewBySeq(review_seq); review_seq를 이용해 삭제할 리뷰 객체를 찾아옵니다.
reviewService.deleteReview(review); 는 review 객체를 기반으로 실제 삭제를 처리합니다.
'SpringBoot 프로젝트' 카테고리의 다른 글
Spring Boot - 댓글 CRUD기능 구현하기 (1) (2) | 2024.11.21 |
---|---|
Spring Boot - 이미지 업로드 및 삭제 (0) | 2024.11.21 |
Spring Boot - 리뷰 CRUD기능 구현하기 (3) (2) | 2024.11.19 |
Spring Boot - 리뷰 CRUD기능 구현하기 (2) (0) | 2024.11.19 |
Spring Boot - 리뷰 CRUD기능 구현하기 (1) (4) | 2024.11.18 |