jquery ajax json mvc 스프링 post
jquery 로 스프링 통신시 컨트롤로 선언 방법과 리턴방법 jquery에서 사용법등을 정리해보겠습니다.
일단 스프링 에서 컨트롤러 선언입니다. 저는 사과로 선언을 해보겠습니다.
@RequestMapping(value = "/apple", method = RequestMethod.POST, consumes = "application/json")
public @ResponseBody CommonData apple(@RequestBody CommonData dto) {
CommonData result_data = new CommonData();
String apple = dto.get("apple","");
result_data.put("result",apple);
return result_data;
}
@RequestBody 해쉬맵 변수명 으로 하면 강종항목들이 키와 값으로 분리되어 들어갑니다.
CommonData 를 궁금해 하시는분들이 많으셔서 해쉬맵인데 전자정부프레임워크 처럼 map데이터사용시 쓸려고 재정의 해 놓은것 뿐입니다.
public class CommonData extends LinkedHashMap {
public void put(String key, Object value){
super.put(key, value);
}
public String get(String key) {
if(super.get(key)!=null)
{
return super.get(key).toString();
}
else
{
return null;
}
}
public String get(String key,String value)
{
if(super.get(key)!=null)
{
return super.get(key).toString();
}
else
{
return value;
}
}
public Object getObj(String key) {
return super.get(key);
}
}
거기에 @ResponseBody 해주면 해쉬맵이 json형태로 변화되어 응답합니다. 안에 리스트데이터나 뭐 각종데이터를 넣어서 보내어도 계층화되어 전송이 됩니다.
ajax소스인데요.
$.ajax({
url : '${pageContext.request.contextPath}/jqueryajax/apple',
type : 'post',
contentType: 'application/json',
data : JSON.stringify ({'apple':'100','banana':200}),
dataType : 'json',
success : function(data){
// 통신 성공시 실행....
data = data.RESULT;
},
error : function(xhr,status,error){
// 통신 실패시 실행....
// alert(xhr.status + " " + xhr.statusText);
// alert("통신실패 : ["+xhr.status + " " + xhr.statusText+"]");
alert("데이터 불러오는데 실패했습니다.");
},
complete : function(data){
// 통신 실패했어도 최종 완료시 실행...
// alert('complete');
}
});
이런식으로 호출해서 사용하시면 됩니다.
'JQUERY' 카테고리의 다른 글
jqgrid jquery 내부값 변경하기 특정셀값 jqgrid (0) | 2014.12.01 |
---|---|
JUQERY 폰 전화 PHONE 정규식 검사 - 포함 (0) | 2014.12.01 |
jquery정리 (0) | 2014.11.20 |