詳解SpringMVC @RequestBody接收J(rèn)son對(duì)象字符串
頁面提交請(qǐng)求參數(shù)有兩種,一種是form格式提交,一種json格式提交
通常情況下我們使用的都是form格式提交的數(shù)據(jù),數(shù)據(jù)格式:k=v&k=v,這個(gè)時(shí)候用springMVC接收參數(shù)沒有問題,但有時(shí)候前端會(huì)通過json向后端傳遞數(shù)據(jù),就會(huì)出現(xiàn)springMVC獲取不到參數(shù)值的情況
注意:jQuery的$.post方法雖然也可以傳遞json格式數(shù)據(jù),但實(shí)際上是用的form格式提交,jquery會(huì)幫你把json轉(zhuǎn)成form格式提交后臺(tái)
所以其實(shí)可以通過$.post,$.get來提交json格式,讓jquery幫你轉(zhuǎn)換,可是如果后端用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是預(yù)期服務(wù)端返回的數(shù)據(jù)類型,其中對(duì)json字符串的格式有嚴(yán)格要求,形如:'{"type":"type","fileftppath":"fileftppath","map":{"id":1,"name":"suo"}}',字符串,key的雙引號(hào)是必須的,否則400 bad request,當(dāng)然如果你數(shù)據(jù)格式不正確,也會(huì)400,比如你傳了個(gè)"step1",后端用Integer接收,也是400,直接從json對(duì)象轉(zhuǎn)json串,這個(gè)json串格式是不會(huì)有問題的,如果400,只能是數(shù)據(jù)格式了
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 解讀@RequestBody的正確使用方法
- 快速解決SpringMVC @RequestBody 用map接收請(qǐng)求參數(shù)的問題
- @ResponseBody 和 @RequestBody 注解的區(qū)別
- SpringMVC restful 注解之@RequestBody進(jìn)行json與object轉(zhuǎn)換
- springmvc @RequestBody String類型參數(shù)的使用
- 關(guān)于Springboot | @RequestBody 接收到的參數(shù)對(duì)象屬性為空的問題
- Springboot攔截器如何獲取@RequestBody參數(shù)
- 親測SpringBoot參數(shù)傳遞及@RequestBody注解---踩過的坑及解決
- springMvc注解之@ResponseBody和@RequestBody詳解
- SpringBoot中@RequestBody的偽表單提交場景
相關(guān)文章
java8新特性 stream流的方式遍歷集合和數(shù)組操作
這篇文章主要介紹了java8新特性 stream流的方式遍歷集合和數(shù)組操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
詳解mybatis-plus的 mapper.xml 路徑配置的坑
這篇文章主要介紹了詳解mybatis-plus的 mapper.xml 路徑配置的坑,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
Springmvc DispatcherServlet原理及用法解析
這篇文章主要介紹了Springmvc DispatcherServlet原理及用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09
SpringMvc根據(jù)返回值類型不同處理響應(yīng)的方法
這篇文章主要介紹了SpringMvc根據(jù)返回值類型不同處理響應(yīng),我們可以通過控制器方法的返回值設(shè)置跳轉(zhuǎn)的視圖,控制器支持如void,String,ModelAndView類型,需要的朋友可以參考下2023-09-09
Spring MVC請(qǐng)求參數(shù)與響應(yīng)結(jié)果全局加密和解密詳解
這篇文章主要給大家介紹了關(guān)于Spring MVC請(qǐng)求參數(shù)與響應(yīng)結(jié)果全局加密和解密的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-08-08
Java日常練習(xí)題,每天進(jìn)步一點(diǎn)點(diǎn)(33)
下面小編就為大家?guī)硪黄狫ava基礎(chǔ)的幾道練習(xí)題(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧,希望可以幫到你2021-07-07
java實(shí)現(xiàn)角色及菜單權(quán)限的項(xiàng)目實(shí)踐
在Java中,實(shí)現(xiàn)角色及菜單權(quán)限管理涉及定義實(shí)體類、設(shè)計(jì)數(shù)據(jù)庫表、實(shí)現(xiàn)服務(wù)層和控制器層,這種管理方式有助于有效控制用戶權(quán)限,適用于企業(yè)級(jí)應(yīng)用,感興趣的可以一起來了解一下2024-09-09

