지금까지 프로젝트 진행하면서 항상 하나의 데이터만 넘기거나 두개정도만 넘겨서 컨트롤러에서는
@RepuestParam("ooo") String ooo
이런식으로 받아왔다.
대댓글을 구현하기 위해 만들다보니 데이터를 5개정도 한번에 보내서 받도록 하고싶었는데 해왔던것 처럼
Controller에서 RequestParam으로 다 받자니 너무 길어지고 보기도 싫고 불필요해보여서 한번에 받을 수 있는 방법을 찾기 시작함..
$(document).on("click", "#CommentReplyInsert", function(){
var commentData = {
CommentNo : $("#CommentReplyInsert").val(),
CommentGroupNo : $("#CommentGroupNo").val(),
CommentIndent : $("#CommentIndent").val(),
CommentContent : $("#CommentReplyContent").val(),
BoardNo : $("#BoardNo").val(),
};
var str = JSON.stringify(commentData);
$.ajax({
url: "/board/CommentReply",
method: 'POST',
dataType: 'json',
data: str,
contentType: "application/json; charset=UTF-8",
success: function(data){
alert("댓글 OK!");
location.reload();
},
error : function(request, status, error){
alert("code:" + request.status + "\n"
+ "message : " + request.responseText
+ "\n" + "error : " +error);
}
})
})
이렇게 보내주고!
@RequestMapping("/CommentReply")
@ResponseBody
public void CommentReply(@RequestBody Map<String, Object> commentData) throws Exception{
System.out.println("Data : "+commentData);
System.out.println("BoardNo : "+commentData.get("BoardNo"));
System.out.println("CommentNo : "+commentData.get("CommentNo"));
System.out.println("CommentGroupNo : "+commentData.get("CommentGroupNo"));
System.out.println("CommentIndent : "+commentData.get("CommentIndent"));
System.out.println("CommentContent : "+commentData.get("CommentContent"));
}
컨트롤러에서는 이렇게 받았다!
방법이 좀 다양해서 이것저것 해봤는데 일단 지금 구성에서는 이렇게 하는 방법만 정상작동한다.
@RequestBody List<Map<String, Object>> 이렇게 받는것도
Gson 이용해서 받는것도 다 해봤지만 안됨...
올려주신 분들이 본인 데이터 처리를 어떻게 했다는 예시는 안보여주셔서 사실 차이점을 아직 잘 모르겠다...
JSON을 좀 더 알아봐야할듯 ㅠㅠ
'Project&문제해결' 카테고리의 다른 글
Invalid bound statement (not found) 에러 (0) | 2020.12.23 |
---|---|
BoardProject 11/11 계층형 원글 삭제 문제 (0) | 2020.11.11 |
JQuery .append로 button 추가 후 click (0) | 2020.11.05 |
BoardProject 11/4 JSON해결. (0) | 2020.11.04 |
BoardProject 10/22 (0) | 2020.10.23 |