유튜브에서 블로그 만들기 프로젝트를 따라하면서 나의 스킬을 조금더 레벨업 하고자 한다.
IDE : IntelliJ
언어 : Java
DB : MySQL
빌드관리 도구 : Maven
OS : iOS
참고유튜브 : 메타코딩
게시글에 댓글들이 달렸을때의 기능을 작성하고자한다.
우선 repository에 ReplyRepository를 생성한후 JpaRepositry를 상속받아 사용할수 있게 해준다.
public interface ReplyRepository extends JpaRepository<Reply,Integer> {
}
댓글의 디자인은 아래와 같이 진행할 예정이다
detail.jsp로 이동해서 아래와 같이 작성해준다.
https://www.w3schools.com/bootstrap4/bootstrap_cards.asp 에 있는 card를 사용해서 구분해주었다.
댓글을 작성하는 곳과 이미작성된 댓글을 div태그로 나눠주었다.
그리고 board객체에 reply가 포함되어 있기때문에 반복문을 활용해 해당 게시글에 있는 모든 댓글들을 board.replys로 뿌려주고
해당 댓글의 내용인 content와 작성자인 username을 Reply객체에서 가져온다
여기서 reply객체와 board 객체는 서로를 포함하고 있어 무한참조를 하게되는 상황이 있을수 있기때문에
@JsonIgnoreProperties 어노테이션을 추가해준다.
@JsonIgnoreProperties({"board"})
<div class="card">
<div class="card-body"><textarea class="form-control" rows="1"></textarea></div>
<div class="card-footer"><button class="btn btn-primary">Write Reply</button></div>
</div>
<br>
<div class="card">
<div class="card-header">Reply</div>
<ul id="reply--box" class="list-group">
<c:forEach var="reply" items="${board.replys}">
<li id="reply--1" class="list-group-item d-flex justify-content-between">
<div>${reply.content}</div>
<div class="d-flex">
<div class="font-italic">${reply.user.username} </div>
<button class="badge">delete</button>
</div>
</li>
</c:forEach>
</ul>
</div>
db에 댓글들을 임시로 작성해서 넣고 값들을 잘 가져오는지 확인해보자
서버에서 확인해보면 아주 잘 출력이 되는걸 확인할 수 있다.
'프로젝트 > Spring Boot 블로그프로젝트' 카테고리의 다른 글
[블로그프로젝트] 34. 댓글삭제 (0) | 2023.06.23 |
---|---|
[블로그프로젝트] 33. 댓글작성하기 (0) | 2023.06.21 |
[블로그프로젝트] 31. 카카오로그인(2) (0) | 2023.06.20 |
[블로그프로젝트] 30. 카카오로그인(1) (0) | 2023.06.19 |
[블로그프로젝트] 29. 카카오 AccessToken 받기 (1) | 2023.06.18 |
댓글