
1. 댓글 확인하기
- 로그인 한 사람만 댓글을 쓸 수 있음
- 게시판 글쓰기처럼 댓글 작성하기
- 게시판 목록처럼 댓글 리스트가 구현하기
- 게시판 삭제하기처럼 기본으로 비 활성화하기
user의 객체와 sessionUser가 같을 경우 삭제 버튼 활성화하기


- userId는 session에 있음
- boardId는 받아야 하는데 눈에 보일 필요가 없음
- board.id는 확인이 필요함!

- board.id는 확인 완료


2. ReplyRequest에서 SaveDTO 만들기
- 댓글 내용(content) 담을 가방 만들기
- userId는 session에서 가져올 것임
package shop.mtcoding.blog.reply;
import lombok.Data;
public class ReplyRequest {
@Data
public static class SaveDTO {
private String comment;
private int id;
private int boardId;
// userId는 session에서 가져올 것임
}
}
3. ReplyRepository 만들기
- replySave() 구현하기
replt_tb에 insert하는 쿼리문 작성하기
package shop.mtcoding.blog.reply;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
@RequiredArgsConstructor
@Repository
public class ReplyRepository {
private final EntityManager em;
@Transactional
public void save(ReplyRequest.SaveDTO requestDTO, int userId) {
Query query = em.createNativeQuery("insert into board_tb(comment, board_id, user_id, created_at) values(?,?,? now())");
query.setParameter(1, requestDTO.getComment());
query.setParameter(2, requestDTO.getBoardId());
query.setParameter(3, userId);
query.executeUpdate();
}
}
4. ReplyController 만들기
- 인증 체크하기
로그인 한 사람만 댓글을 달 수 있음
로그인 안 했으면 로그인 페이지로 리다이렉션
package shop.mtcoding.blog.reply;
import jakarta.servlet.http.HttpSession;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import shop.mtcoding.blog.user.User;
// 댓글 쓰기, 댓글 삭제, 댓글 목록보기
@RequiredArgsConstructor
@Controller
public class ReplyController {
private final HttpSession session;
private final ReplyRepository replyRepository;
@PostMapping("/reply/save")
public String save(ReplyRequest.SaveDTO requestDTO) {
System.out.println(requestDTO);
// 1. 인증 체크
User sessionUser = (User) session.getAttribute("sessionUser");
System.out.println("sessionUser:" + sessionUser);
if (sessionUser == null) {
return "redirect:/loginForm";
}
// 2. 유효성 검사(님들이 하세요)
// 핵심코드
replyRepository.save(requestDTO, sessionUser.getId());
return "redirect:/board/" + requestDTO.getBoardId();
}


- 아직 페이지 구현 안해서 오류나는게 맞음!

Share article