댓글을 보시면 작성자가 아이디로 되어 있습니다.
하지만 글의 작성자가 아이디가 아닌 이름으로 되어 있기 때문에
댓글도 아이디가 아닌 이름으로 변경하도록 하겠습니다.
변경하기 위해서는 2가지를 해야하는데요
1. DB 변경
기존 reply 테이블에서는
CONSTRAINT fk_reply FOREIGN KEY (replyer) REFERENCES user(identification) ON DELETE CASCADE
다음과 같이 되어있는데요
ALTER TABLE reply DROP FOREIGN KEY fk_reply;
alter table reply add constraint fk_reply foreign key (replyer) references user(name) on delete cascade;
위와 같이 fk를 삭제하고 다시 fk설정을 했습니다.
2. view 변경
댓글은 게시물과 같이 출력이 되야 하기 떄문에 readView.jsp에서 수정해야합니다
기존에
<div class="input-group">
<input type="hidden" id="replyer" name="replyer" value="${user.identification}" readonly="readonly"/>
<input type="text" id="replytext" class="form-control" name="replytext" placeholder="내용을 입력하세요" />
<span class="input-group-btn">
<button type="button" class="replyWriteBtn btn btn-success">작성</button>
</span>
</div>
작성자가 사용자의 아이디로 되어있는데
사용자의 이름으로 변경해주도록 하겠습니다.
<div class="input-group">
<input type="hidden" id="replyer" name="replyer" value="${user.name}" readonly="readonly"/>
<input type="text" id="replytext" class="form-control" name="replytext" placeholder="내용을 입력하세요" />
<span class="input-group-btn">
<button type="button" class="replyWriteBtn btn btn-success">작성</button>
</span>
</div>
이렇게 한 후에 댓글을 작성해보겠습니다.
그리고 한가지 더 문제가 있는데요
자신이 작성한 댓글인데 수정, 삭제 버튼이 사라졌습니다.
아까 identification에서 name으로 변경했기 때문에
jstl if문도 변경해야합니다.
<c:if test="${user.name == replyList.replyer }"> <!-- boardVO.identification는 글작성한 사람 아이디, user.identification는 로그인한 사람 아이디 -->
<button type="button" class="replyUpdateBtn btn btn-success" data-reply_number="${replyList.reply_number}">수정</button>
<button type="button" class="replyDeleteBtn btn btn-danger" data-reply_number="${replyList.reply_number}">삭제</button>
</c:if>
다음과 같이 정상적으로 출력되었습니다.
'JAVA > blog' 카테고리의 다른 글
게시판 추가하기 (0) | 2020.08.12 |
---|---|
프로젝트에 부트스트랩 입히기 (0) | 2020.08.12 |
회원탈퇴 후 해당 게시물의 댓글에 기록이 남는 애로사항 (0) | 2020.08.09 |
회원탈퇴 후 게시판에 사용자 기록이 남는 애로사항 (0) | 2020.08.05 |
게시판 리스트 제목에 댓글 수 표시 (1) | 2020.08.05 |