@RequestBody : HTTP 요청의 body 내용을 자바 객체로 매핑한다.
@ResponseBody : 자바 객체를 HTTP 요청의 body로 매핑한다.
예제 :
test.jsp
function test(){
var rowData = $("#main_grid").getRowData();
var json = JSON.stringify(rowData) ;
var jsonInfo = JSON.parse(json) ;
var actionUrl = "/test/testList.do";
$.ajax({
type:"POST",
dataType : 'json',
data : json,
url: actionUrl,
processData : true /*querySTring make false*/,
contentType : "application/json; charset=UTF-8",
success:function(result) {
var jsonResult = JSON.parse(JSON.stringify(result)) ;
if(jsonResult.result == "success" ) {
alert(jsonResult.resultMsg) ;
} else if (jsonResult.result == "failure" ) {
alert(jsonResult.resultMsg) ;
return false ;
}
},
complete : function () {
},
error: AjaxError
}) ;
} else {
return false;
}
}
$("#main_grid") 라는 jqGrid에서 getRowData()를 통해 전체 Row를 가져왔다.
그 후 Json형식으로 변환한 뒤 파라미터로 던져주었다.
test.java
@RequestMapping("/test/testList.do")
@ResponseBody
public Object testList(HttpServletRequest request, @RequestBody List<Map<String, Object>> list) throws Exception {
Map <String, String> resultMap = new HashMap<String, String>();
String result = "";
String resultMsg = "";
try {
for(Map<String, Object> tList : list) {
aVO authVO = new AuthVO() ;
aVO.setUse_auth(tList.get("use_auth").toString());
aVO.setMenu_id(tList.get("menu_id").toString());
aVO.setUse_yn(tList.get("use_yn").toString());
authMgmtService.mergeAuthMgmtList(aVO) ;
}
result = "success";
resultMsg = "성공" ;
} catch (Exception e) {
result = "failure";
resultMsg = "실패" ;
}
resultMap.put("result", result);
resultMap.put("resultMsg", resultMsg);
return resultMap;
}
전송 된 파라미터를 List<Map<String, Object>> 형식으로 받아온다. 앞에 @RequestBody를 쓰면 그대로 list에 매핑되어진다.
그리고 list의 size만큼 for문을 실행하는데 aVo라는 vo객체를 하나 생성해서 list에서 받아온 map의 value값을 넣어준다.
작업을 수행한 뒤 result와 resultMsg를 resultMap에 담아 리턴한다. @ResponseBody를 명시했기 때문에 응답데이터에 Map객체가 매핑되어 전달된다.
'Programming > Spring' 카테고리의 다른 글
| java.lang.NoClassDefFoundError: org/apache/commons/pool/impl/GenericObjectPool 오류 (0) | 2017.01.23 |
|---|---|
| Spring Interceptor 설정(Session) (1) | 2016.11.17 |
WRITTEN BY




