SpringMVC @RequestBody接收Json对象字符串
以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: "json",contentType:"application/json" 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.
JavaScript 代码:
1 <script type="text/javascript"> 2 $(document).ready(function(){ 3 var saveDataAry=[]; 4 var data1={"userName":"test","address":"gz"}; 5 var data2={"userName":"ququ","address":"gr"}; 6 saveDataAry.push(data1); 7 saveDataAry.push(data2); 8 $.ajax({ 9 type:"POST", 10 url:"user/saveUser", 11 dataType:"json", 12 contentType:"application/json", 13 data:JSON.stringify(saveData), 14 success:function(data){ 15 16 } 17 }); 18 }); 19 </script>
Java代码
1 @RequestMapping(value = "saveUser", method = {RequestMethod.POST }}) 2 @ResponseBody 3 public void saveUser(@RequestBody List<User> users) { 4 userService.batchSave(users); 5 }
作者:唐 冰(Tobey) (http://www.cnblogs.com/tobey/)
版权声明:本文的版权归作者与博客园共同所有。转载时请在明显地方注明本文的详细链接,未经作者同意请不要删除此段声明,感谢您为保护知识产权做出的贡献。