Notice
Recent Posts
Recent Comments
«   2024/05   »
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
관리 메뉴

DeFacto-Standard IT

Spring DataBinding (3) - AJAX Request via JQuery (JSON) 본문

SpringFramework/References

Spring DataBinding (3) - AJAX Request via JQuery (JSON)

defacto standard 2018. 5. 2. 00:08

JSON to Object


1. 깊이1의 JSON 객체

 - JSP

function sendAjax(content) {
var username = $("#username").val();
var datas = {
"boardno" : ${boardVO.boardno},
"username" : username,
"content" : content
};
var jsonData = JSON.stringify(datas);

$.ajax({
method : 'POST',
url : '/rest/reply/',
data : jsonData,
contentType: "application/json",
success : function(){
alert("AJAX성공");
},
error : function(){
alert("AJAX실패");
}
});
};


 - Controller

@RequestMapping(value = "/{boardno}", method = RequestMethod.POST)
public void addReplies(@PathVariable(value = "boardno") int boardNo, @RequestBody ReplyVO replyVO) {
//...
}

@RequestBody를 이용하여 바로 ReplyVO 타입 객체로 받는다.

이때, ReplyVO 클래스의 필드에 "boardno", "username", "content" 라는 이름의 필드명이 반드시 존재해야한다.



2. 여러 깊이의 JSON 객체인 경우 ( 이부분은 확실하지 않음, 바로 객체로 가져오는방법 연구중 )


 - JSP

function sendAJAX(content){
var username = $("#username").val();
var datas = {
"reply" : {
"boardno" : ${boardVO.boardno},
"username" : username,
"content" : content
},
"parentno" : parentno
};
var jsonData = JSON.stringify(datas);

$.ajax({
method : 'POST',
url : '/rest/reply/',
data : jsonData,
contentType: "application/json",
success : function(){
alert("AJAX성공");
},
error : function(){
alert("AJAX실패");
}
});

};

JSP에서는 Ajax요청.


이때 data 옵션은 RequestBody에 넣을 값이다. JSON.stringify(객체); 를 사용하여 JSON으로 표현된 정보를 jsonData라는 객체에 넣고 data옵션의 값으로 주면 된다.



 - Controller

@RequestMapping(value = "/{boardno}", method = RequestMethod.POST)
public void addReplies(@PathVariable(value = "boardno") int boardNo, @RequestBody JSONObject requestData) {
//...
}


Comments