KSI일기장
0509spring 게시물 댓글(2) 댓글 달기(삽입) (대댓글 포함) 본문
*방법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>
'Spring' 카테고리의 다른 글
spring XSS(크로스 사이트 스크립팅) (0) | 2023.05.12 |
---|---|
0509spring 게시물 댓글(3) 댓글 수정 및 삭제 (0) | 2023.05.11 |
spring에러 MethodArgumentTypeMismatchException,NumberFormatException (0) | 2023.05.09 |
resultMap역할과 사용이유 & parameterType,resultType사용 (0) | 2023.05.09 |
spring MVC 요청 처리 과정 (0) | 2023.05.09 |