프로젝트

영화 예매 사이트 (MoVieCinema) - 영화 리뷰 수정 (AJAX)

sejin2 2024. 4. 13. 20:54

AJAX로 영화 리뷰 수정 기능을 구현한다.

ReviewController

@PostMapping("/updateReview")
@ResponseBody
public String updateReview(Review review) {
	reviewService.updateReview(review);
    return "success";
}

ReviewService

public Review updateReview(Review review) {
	return reveiwRepository.save(review);
}

reviews.jsp

위의 수정 버튼을 누르면 reviewId를 매개변수로 editReview 이벤트가 실행된다.

사용자에게 해당 번호의 리뷰를 수정하시겠습니까? 알림창을 띄우고 확인을 누르면, 리뷰id에 해당하는 리뷰를 찾아온다.

그리고 찾아온 리뷰id의 내용은 수정 폼의 내용란에 넣어주고, 수정 중인 reviewId를 데이터 속성으로 저장한다.
기존 리뷰 작성하는 부분 ( 빨간상자 )을 숨기고 리뷰 수정하는 부분 ( 파란상자 )을 보여준다.

리뷰를 수정한 후에 수정 완료를 누르면, updateReview(  ) 메서드가 실행된다.

수정이 완료되면 다시 댓글을 작성하는 부분이 나오고, 수정하는 부분은 가려진다.
수정을 하고 나면 수정 일자가 생성되므로, 수정 일자를 넣어주기 위해 목록 조회하는 부분에 삼항 연산자를 넣어준다.

리뷰를 업데이트한 적이 있으면 날짜를 업데이트한 날짜를 불러오고, 없다면 기존 작성일을 불러온다.
그리고 수정, 삭제 버튼은 글을 작성한 사람에게만 보여주어야 하므로 조건식으로 현재 로그인한 사용자와 작성한 사용자가 같은지를 비교해서 같다면 수정, 삭제 버튼을 보여주도록 처리했다.