|
1、@requestBody注解常用來處理content-type不是默認(rèn)的application/x-www-form-urlcoded編碼的內(nèi)容,比如說:application/json或者是application/xml等。一般情況下來說常用其來處理application/json類型。 2、
通過@requestBody可以將請求體中的JSON字符串綁定到相應(yīng)的bean上,當(dāng)然,也可以將其分別綁定到對應(yīng)的字符串上。 3、 在一些特殊情況@requestBody也可以用來處理content-type類型為application/x-www-form-urlcoded的內(nèi)容,只不過這種方式
不是很常用,在處理這類請求的時(shí)候,@requestBody會將處理結(jié)果放到一個(gè)MultiValueMap<String,String>中,這種情況一般在 例如jQuery easyUI的datagrid請求數(shù)據(jù)的時(shí)候需要使用到這種方式、小型項(xiàng)目只創(chuàng)建一個(gè)POJO類的話也可以使用這種接受方式 4、 @RequestBody接收的是一個(gè)Json對象的字符串,而不是一個(gè)Json對象。然而在ajax請求往往傳的都是Json對象,后來發(fā)現(xiàn)用 JSON.stringify(data)的方式就能將對象變成字符串。同時(shí)ajax請求的時(shí)候也要指定dataType: "json",contentType:"application/json" 這樣就可以輕易的將一個(gè)對象或者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); } |
|
|