Spring mvc 3のajax
Spring mvc 3では、JSONへの応答、受け入れが便利です.
注記@ResponseBodyを使用すると、結果(文字列とJavaBeanを含むMap)をJSONに変換できます.
@RequestBody注釈フロントを使用すると、フォーマットに合ったJSONをControllerに送信するだけで、Springは自動的にbeanにスペルされます.
Springこの変換はorgによるものです.codehaus.jacksonというコンポーネントを実現するにはjackson-core-aslとorgを導入する必要がある.codehaus.jackson 2つのjarパッケージ
注記@ResponseBodyを使用すると、結果(文字列とJavaBeanを含むMap)をJSONに変換できます.
@RequestBody注釈フロントを使用すると、フォーマットに合ったJSONをControllerに送信するだけで、Springは自動的にbeanにスペルされます.
Springこの変換はorgによるものです.codehaus.jacksonというコンポーネントを実現するにはjackson-core-aslとorgを導入する必要がある.codehaus.jackson 2つのjarパッケージ
<title>Spring MVC</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://jquery-json.googlecode.com/files/jquery.json-2.2.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/scripts/user/index.js"></script>
</head>
<body>
<div id="info"></div>
<form action="add" method="post" id="form">
:<input type="text" name="id"/>
:<input type="text" name="username"/>
:<input type="text" name="age"/>
<input type="button" value=" " id="submit"/>
</form>
</body>
</html>
// JSON
$.fn.serializeObject = function() {
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name]) {
if (!o[this.name].push) {
o[this.name] = [ o[this.name] ];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};
$(document).ready(
function() {
jQuery.ajax( {
type : 'GET',
contentType : 'application/json',
url : 'user/list',
dataType : 'json',
success : function(data) {
if (data && data.success == "true") {
$('#info').html(" " + data.total + " 。<br/>");
$.each(data.data, function(i, item) {
$('#info').append(
" :" + item.id + ", :" + item.username
+ ", :" + item.age);
});
}
},
error : function() {
alert("error")
}
});
$("#submit").click(function() {
var jsonuserinfo = $.toJSON($('#form').serializeObject());
alert(jsonuserinfo);
jQuery.ajax( {
type : 'POST',
contentType : 'application/json',
url : 'user/add',
data : jsonuserinfo,
dataType : 'json',
success : function(data) {
alert(" !");
},
error : function(data) {
alert("error")
}
});
});
});
@Controller
@RequestMapping("/user")
public class DemoController {
private Logger logger = LoggerFactory.getLogger(DemoController.class);
@RequestMapping(value = "/list", method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> getUserList() {
logger.info(" ");
List<UserModel> list = new ArrayList<UserModel>();
UserModel um = new UserModel();
um.setId("1");
um.setUsername("sss");
um.setAge(222);
list.add(um);
Map<String, Object> modelMap = new HashMap<String, Object>(3);
modelMap.put("total", "1");
modelMap.put("data", list);
modelMap.put("success", "true");
return modelMap;
}
@RequestMapping(value = "/add", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> addUser(@RequestBody UserModel model) {
logger.info(" ");
logger.info(" Model, :" + model.getUsername());
Map<String, String> map = new HashMap<String, String>(1);
map.put("success", "true");
return map;
}
}