Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Archives
Today
Total
관리 메뉴

KSI일기장

0509spring 게시물 댓글(2) 댓글 달기(삽입) (대댓글 포함) 본문

Spring

0509spring 게시물 댓글(2) 댓글 달기(삽입) (대댓글 포함)

MyDiaryYo 2023. 5. 11. 14:57

*방법1* (Map에 값 담아서 전달하기)

-ReplyController

//댓글 등록
	/* url : contextPath + "/reply/insert",
        data : {"memberNo" : loginMemberNo,
                "boardNo" : boardNo,
                "parentReplyNo" : parentReplyNo,
                "replyContent" : replyContent},
        type : "POST",
        myPage 비밀번호변경 참고
	 */

	//@RequestParam Map<String, Object> map 선언시 ajax의 data 값 map에 담겨진다
	@PostMapping("/insert")
	public int replyInsert(@RequestParam Map<String, Object> map,
							  @RequestParam(value="parentReplyNo", required=false, defaultValue="0") int parentReplyNo
							  ) {
		
		if ( parentReplyNo != 0 )  {
			map.put("parentReplyNo", parentReplyNo);
		}

		int result = replyservice.replyInsert(map,parentReplyNo);

		return result;
	}

 

-ReplyService

/**댓글등록
	 * @param map
	 * @param parentReplyNo
	 * @return
	 */
	int replyInsert(Map<String, Object> map, int parentReplyNo);

 

-ReplyServiceImpl

//댓글등록
	@Override
	public int replyInsert(Map<String, Object> map,int parentReplyNo) {

		String xss = Util.XSSHandling((String)map.get("replyContent"));
		xss = Util.newLineHandling((String)map.get("replyContent"));
		map.put("replyContent", xss);

		if(parentReplyNo == 0) {
			return dao.replyInsert(map);
		}else {
			return dao.replyTwoInsert(map,parentReplyNo);
		}
	}

 

-ReplyDAO

/**댓글 등록
	 * @param map
	 * @return
	 */
     //일반댓글
	public int replyInsert(Map<String, Object> map) {
		return sqlSession.insert("replyMapper.replyInsert", map);
	}

    //댓글에 댓글(대댓글)
	public int replyTwoInsert(Map<String, Object> map, int parentReplyNo) {
		return sqlSession.insert("replyMapper.replyTwoInsert", map);
	}

 

-reply-mapper.xml

<!-- 댓글등록 -->

	<!-- 일반댓글 -->
	<insert id="replyInsert">
		INSERT INTO REPLY_S 
		VALUES(SEQ_REPLY_NO_S.NEXTVAL, #{replyContent}, DEFAULT, DEFAULT, ${memberNo}, ${boardNo}, NULL)
	</insert>

    <!-- 댓글에 댓글(대댓글) -->
	<insert id="replyTwoInsert">
		INSERT INTO REPLY_S 
		VALUES(SEQ_REPLY_NO_S.NEXTVAL, #{replyContent}, DEFAULT, DEFAULT, ${memberNo}, ${boardNo}, ${parentReplyNo})
	</insert>

 

*방법2* (VO객체 생성해서 값  담아서 전달하기)

-ReplyController

//댓글 등록
	/* url : contextPath + "/reply/insert",

        data : {"memberNo" : loginMemberNo,
                "boardNo" : boardNo,
                "parentReplyNo" : parentReplyNo,
                "replyContent" : replyContent},

        type : "POST",
        myPage 비밀번호변경 참고
	 */
     	//int memberNo, int boardNo, String replyContent,
	@PostMapping("/insert")
	public int replyInsert(int memberNo, int boardNo, String replyContent,
						  @RequestParam(value="parentReplyNo", required=false, defaultValue="0") int parentReplyNo
						  ) {
		Reply reply = new Reply();
		reply.setBoardNo(boardNo);
		reply.setMemberNo(memberNo);
		reply.setReplyContent(replyContent);
		if ( parentReplyNo != 0 ) {
		reply.setReplyNo(parentReplyNo);
	}

	int result = replyservice.replyInsert(reply);

	return result;

	}

 

-ReplyService

int replyInsert(Reply reply);

 

-ReplyServiceImpl

	@Override
	public int replyInsert(Reply reply) {
			reply.setReplyContent(Util.XXSHandling(reply.getReplyContent()) );
			reply.setReplyContent(Util.newLineHandling(reply.getReplyContent()) );
			return dao.replyInsert(reply);
	}

 

-ReplyDAO

/**댓글등록
	 * @param boardNo
	 * @param replyContent
	 * @param memberNo
	 * @return
	 */
	public int replyInsert(int boardNo, String replyContent, int memberNo) {

		return sqlSession.insert("replyMapper.replyInsert", boardNo, replyContent, memberNo);
	}

 

-reply-mapper.xml

 <insert id="replyInsert">
		INSERT INTO REPLY_S VALUES(
			SEQ_REPLY_NO_S.NEXTVAL, #{replyContent}, DEFAULT, DEFAULT, ${memberNo}, ${boardNo},
			
			댓글
			<if test="parentReplyNo == 0">
				NULL
			</if>
			
			댓글의 답글(대댓글)
			<if test="parentReplyNo != 0">
				${parentReplyNo}
			</if>
	</insert>