2024-02-20(49일차) - Spring

민짱·2024년 2월 20일

📅2024. 02.20 49일차


🎬2024_01_Spring_AM

댓글 수정/삭제

1.버튼 구현

로그인 한 경우에만 수정/삭제버튼이 나올 수 있게, 로그인 하지 않으면 수정/삭제버튼이 보이지 않도록 처리

문제상황:
댓글 작성자가 아니어도 수정/삭제 버튼이 표시 됨
그나마 다행인건, 해당 댓글 작성자가 아니면 삭제권한이 없다고 되돌려 보냄

<c:if test="${rq.isLogined() }">
			<td><a class="btn btn-sm btn-outline" href="../reply/modify?id=${reply.id }">수정</a></td>
			<td><a class="btn btn-sm btn-outline" onclick="if(confirm('정말 삭제하시겠습니까?') == false) return false;"
			href="../reply/doDelete?relId=${reply.relId }&id=${reply.id }">삭제</a></td>
</c:if>

삭제 기능
reply컨트롤러에서 relId과 id와 함께 요청 보내서 reply레파지토리에서 쿼리스트링으로 db에서 삭제

@Delete("DELETE FROM reply WHERE id = #{id}")
	public void deleteReply(int id);

로그인 체크 -> 유무 체크 -> 권한 체크 -> 삭제

public String doDelete(HttpServletRequest req, int relId, int id) {
		Rq rq = (Rq) req.getAttribute("rq");

		Reply reply = replyService.getReply(id);

		if (reply == null) {
			return Ut.jsHistoryBack("F-1", Ut.f("존재하지 않는 댓글입니다", id));
		}

		ResultData loginedMemberCanDeleteRd = replyService.userCanDelete(rq.getLoginedMemberId(), relId, reply);

		if (loginedMemberCanDeleteRd.isSuccess()) {
			replyService.deleteReply(id);
		}

		return Ut.jsReplace(loginedMemberCanDeleteRd.getResultCode(), loginedMemberCanDeleteRd.getMsg(),
				"../article/detail?id=" + relId);
	}

0개의 댓글