@RequestBody

以前,一直以为在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=&quot;http://www.w3.org/1998/Math/MathML&quot;><merror><mtext>(document).ready(function(){&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;var&amp;#xA0;saveDataAry=[];&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;var&amp;#xA0;data1={&amp;quot;userName&amp;quot;:&amp;quot;test&amp;quot;,&amp;quot;address&amp;quot;:&amp;quot;gz&amp;quot;};&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;var&amp;#xA0;data2={&amp;quot;userName&amp;quot;:&amp;quot;ququ&amp;quot;,&amp;quot;address&amp;quot;:&amp;quot;gr&amp;quot;};&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;saveDataAry.push(data1);&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#xA0;&amp;#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);
}

posted @ 2018-07-10 14:25  星朝  阅读(1824)  评论(0编辑  收藏  举报