대댓글 작성 다이어그램.drawio.png

대댓글 작성 다이어그램.drawio

myHomeSelect.jsp

**<조회하는 ajax중>**
// 로그인한 사용자에게만 대댓글 버튼 보이기
if (isLogOn == 'true' && member != null) {
str += '<div class="buttons" style="text-align: left; margin-top: 10px;">' +
'<button class="rereToggle" value="대댓글 작성" onclick="rereToggle(' + reply.replyNo + ', this)">답변</button>' +
'</div>';
}

**<숨겨져 있는 대댓글 작성란>**
 // 대댓글 작성 폼
if (isLogOn == 'true' && member != null) {
str += '<div class="rereplyForm" style="display: none; margin-top: 10px;">' +
'<textarea class="rereplyContents" placeholder="여기에 작성해 주세요." style="width: 100%;"></textarea>' +
'<button class="addRereply" type="button" onclick="addRereply(' + reply.replyNo + ', this)">등록</button>' +
'</div>';
}

**<스크립트>**
// 대댓글 작성 클릭시 숨겨져 잇던 rereplyForm 두두 등장
function rereToggle(replyNo, button) {
	$(button).closest('div').next('.rereplyForm').toggle();
}

// 대댓글 등록
function addRereply(replyNo, button) {
    var rereplyContents = $(button).siblings('.rereplyContents').val(); // 텍스트 영역의 값 가져오기

    if (${isLogOn == true && member != null}){
        if (rereplyContents) {
            $.ajax({
                url: '/gami/board/reply/addRereply.do',
                type: 'POST',
                data: {
                    replyNo: replyNo,
                    rereplyContents: rereplyContents,
                    boardMyhomeArticleNo: ${selectMyHome.boardMyhomeArticleNo}
                },
                success: function() {
                    alert('대댓글이 등록되었습니다.');
                    replyList(); // 댓글 목록을 새로 고침
                },
                error: function() {
                    alert('대댓글 등록 실패');
                }
            });
        } else {
            alert('대댓글 내용을 입력해 주세요.');
        }
    }else {
    	 alert('로그인 후에 작성하실 수 있습니다.');
    }
    }

ReplyController

	// 대댓글 추가
	@RequestMapping(value="/addRereply.do", method=RequestMethod.POST)
	@ResponseBody
	public void addRereply(@RequestParam("rereplyContents") String replyContents, 
			 					  @RequestParam("replyNo") int replyNo,
			 					  @RequestParam("boardMyhomeArticleNo") int boardMyhomeArticleNo,
			 					  HttpSession session) throws Exception {
		
		System.out.println("응답 왔냐?");
		System.out.println("replyContents 받았냐 ?: " + replyContents); // 글 내용
		System.out.println("replyNo 받았냐 ?: " + replyNo); // 부모 번호
		System.out.println("boardMyhomeArticleNo 받았냐 ?: " + boardMyhomeArticleNo); // 원글 번호
		
		MemberDomain memberDomain = (MemberDomain) session.getAttribute("member");
		String memberId = memberDomain.getMemberId();
		String memberNickname = memberDomain.getMemberNickname();
		
		replyDomain.setMemberId(memberId);
		replyDomain.setReplyParentNo(replyNo);
		replyDomain.setBoardMyhomeArticleNo(boardMyhomeArticleNo);
		replyDomain.setReplyContents(replyContents);
		replyDomain.setMemberNickname(memberNickname);

		System.out.println("대댓글 닉네임 들어왔니? " + memberNickname);
		
		replyService.addRereply(replyDomain);
		
	}

ReplyServiceImpl

	@Override
	public void addRereply(ReplyDomain replyDomain) throws Exception {
		replyDAO.addRereply(replyDomain);
	}

ReplyDAOImpl

	@Override
	public void addRereply(ReplyDomain replyDomain) throws DataAccessException {
		sqlSession.insert("mapper.board.addRereply", replyDomain);
	}