詳解SpringMVC @RequestBody接收Json對象字符串
頁面提交請求參數有兩種,一種是form格式提交,一種json格式提交
通常情況下我們使用的都是form格式提交的數據,數據格式:k=v&k=v,這個時候用springMVC接收參數沒有問題,但有時候前端會通過json向后端傳遞數據,就會出現springMVC獲取不到參數值的情況
注意:jQuery的$.post方法雖然也可以傳遞json格式數據,但實際上是用的form格式提交,jquery會幫你把json轉成form格式提交后臺
所以其實可以通過$.post,$.get來提交json格式,讓jquery幫你轉換,可是如果后端用restful,那就只能用以下方法解決
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:"PUT",
url:"/user",
dataType:"json",
contentType:"application/json;charset=utf-8",
data:JSON.stringify(saveData),
success:function(data){
}
});
});
</script>
后端springMVC接收
@RequestMapping(value = "user", method = RequestMethod.PUT )
@ResponseBody
public void saveUser(@RequestBody List<User> users) {
userService.batchSave(users);
}
注意:提交的data必須為json格式字符串,content-type為'application/json; charset=utf-8'表明提交的類型和編碼格式,dataType是預期服務端返回的數據類型,其中對json字符串的格式有嚴格要求,形如:'{"type":"type","fileftppath":"fileftppath","map":{"id":1,"name":"suo"}}',字符串,key的雙引號是必須的,否則400 bad request,當然如果你數據格式不正確,也會400,比如你傳了個"step1",后端用Integer接收,也是400,直接從json對象轉json串,這個json串格式是不會有問題的,如果400,只能是數據格式了
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- 解讀@RequestBody的正確使用方法
- 快速解決SpringMVC @RequestBody 用map接收請求參數的問題
- @ResponseBody 和 @RequestBody 注解的區(qū)別
- SpringMVC restful 注解之@RequestBody進行json與object轉換
- springmvc @RequestBody String類型參數的使用
- 關于Springboot | @RequestBody 接收到的參數對象屬性為空的問題
- Springboot攔截器如何獲取@RequestBody參數
- 親測SpringBoot參數傳遞及@RequestBody注解---踩過的坑及解決
- springMvc注解之@ResponseBody和@RequestBody詳解
- SpringBoot中@RequestBody的偽表單提交場景
相關文章
詳解mybatis-plus的 mapper.xml 路徑配置的坑
這篇文章主要介紹了詳解mybatis-plus的 mapper.xml 路徑配置的坑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
Springmvc DispatcherServlet原理及用法解析
這篇文章主要介紹了Springmvc DispatcherServlet原理及用法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09

