背景:在SpringMVC開發(fā)環(huán)境中,一直以為@RequestBody接收的是一個Json對象奕筐,但是在調試代碼的過程中都沒有成功,后來發(fā)現(xiàn)藕畔,其實 @RequestBody接收的是一個Json對象的字符串蝎困,而不是一個Json對象录语。然而在ajax請求中往往傳的都是Json對象,后來發(fā)現(xiàn)用 JSON.stringify(data)的方式就能將對象變成字符串禾乘。同時ajax請求的時候也要指定contentType:"application/json" 澎埠,這樣就可以輕易的將一個對象或者List傳到Java端,使用@RequestBody即可綁定對象或者List.
JavaScript 代碼:
<script type="text/javascript">
$(document).ready(function(){
var saveDataAry=[];
var data1={"userName":"test","address":"gz"};
var data2={"userName":"ququ","address":"gr"};
saveDataAry.push(data1);
saveDataAry.push(data2);
$.ajax({
type:"POST",
url:"user/saveUser",
dataType:"json",
contentType:"application/json",
data:JSON.stringify(saveData),
success:function(data){
}
});
});
</script>
Java代碼
@RequestMapping(value = "saveUser", method = {RequestMethod.POST }})
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}