spring mvc @RequestBodyでpost jsonオブジェクトを受け入れるサンプルコード
1.クライアント側:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8″>
<title>Insert title here</title>
<script type="text/javascript"
src="<%=basePath%>resources/scripts/jquery-2.0.3.min.js"></script>
<script type="text/javascript">
$(function(){
$(“#send").click(function(){
var jsondata = $(“#jsondata").val();
var jsonobj = JSON.parse(jsondata)
var callback = function (data) {
$(“#result").html(JSON.stringify(data))
}
$.postJSON('<%=basePath%>api/user/test’, jsonobj, callback)
});
})
$.postJSON = function(url, data, callback) {
return jQuery.ajax({
'type’ : 'POST’,
'url’ : url,
'contentType’ : 'application/json’,
'data’ : JSON.stringify(data),
'dataType’ : 'json’,
'success’ : callback
});
};
</script>
</head>
<body>
JSONオブジェクト
<br>
<textarea id="jsondata" cols="60″ rows="5″>
{“id":2,"gender":0,"mobile":"15072370640″,"password":"startnew24″,"accessToken":"ad6bf3dd3cca4b0ca7c9099447994dba"}
</textarea><br>
<button id="send">POST</button><br>
<font color="red" id="result"></font>
</body>
</html>
2.spring mvcサーバー側:
@RequestMapping(value="/test",method=RequestMethod.POST)
public @ResponseBody Map<String, Object> testPostJson(
@RequestBody UserForm userForm,
BindingResult bindingResult) {
Map<String, Object> map = new HashMap<String, Object>();
if (bindingResult.hasErrors()) {
map.put(“errorCode", “40001");
map.put(“errorMsg", bindingResult.getFieldError().getDefaultMessage());
}
map.put(“user", userForm);
return map;
}