以前,一直以为在SpringMVC环境中,@RequestBody接收的是一个Json对象,一直在调试代码都没有成功,后来发现,其实 @RequestBody接收的是一个Json对象的字符串,而不是一个Json对象。然而在ajax请求往往传的都是Json对象,后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType: “json”,contentType:”application/json” 这样就可以轻易的将一个对象或者List传到Java端,使用@RequestBody即可绑定对象或者List.

javascript代码

“`

<span class="MathJax_Preview" style="color: inherit; display: none;"></span><span class="MathJax" id="MathJax-Element-2-Frame" tabindex="0" style="position: relative;" data-mathml="<math xmlns="http://www.w3.org/1998/Math/MathML"><merror><mtext>(document).ready(function(){&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;var&#xA0;saveDataAry=[];&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;var&#xA0;data1={&quot;userName&quot;:&quot;test&quot;,&quot;address&quot;:&quot;gz&quot;};&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;var&#xA0;data2={&quot;userName&quot;:&quot;ququ&quot;,&quot;address&quot;:&quot;gr&quot;};&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;saveDataAry.push(data1);&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;&#xA0;saveDataAry.push(data2);</mtext></merror></math>" role="presentation"><span class="math" id="MathJax-Span-1" style="vertical-align: 0.241em;" aria-hidden="true"><span class="noError" id="MathJax-Span-2" style="display: inline-block;">(document).ready(function(){&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;saveDataAry=[];&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;data1={"userName":"test","address":"gz"};&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;data2={"userName":"ququ","address":"gr"};&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveDataAry.push(data1);&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveDataAry.push(data2);</span></span><span class="MJX_Assistive_MathML" role="presentation"><math xmlns="http://www.w3.org/1998/Math/MathML"><merror><mtext>(document).ready(function(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;saveDataAry=[];&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;data1={"userName":"test","address":"gz"};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;data2={"userName":"ququ","address":"gr"};&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveDataAry.push(data1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;saveDataAry.push(data2);</mtext></merror></math></span></span><script type="math/tex" id="MathJax-Element-2">(document).ready(function(){  </br>
var saveDataAry=[]; </br>
var data1={"userName":"test","address":"gz"}; </br>
var data2={"userName":"ququ","address":"gr"}; </br>
saveDataAry.push(data1); </br>
saveDataAry.push(data2); </br>
</script>.ajax({ </br>
type:"POST", </br>
url:"user/saveUser", </br>
dataType:"json", </br>
contentType:"application/json", </br>
data:JSON.stringify(saveData), </br>
success:function(data){ </br>


}

});

});


java代码:

“ @RequestMapping(value = “saveUser”, method = {RequestMethod.POST }})

@ResponseBody

public void saveUser(@RequestBody List users) {

userService.batchSave(users);

}