詳解SpringMVC @RequestBody接收J(rèn)son對(duì)象字符串
頁(yè)面提交請(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來(lái)提交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ù)格式了
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java 獲取當(dāng)前設(shè)備的 IP 地址(最新推薦)
Internet 協(xié)議 (IP) 地址可以是連接到 TCP/IP 網(wǎng)絡(luò)的每個(gè)設(shè)備的標(biāo)識(shí)符,該標(biāo)識(shí)符用于識(shí)別和定位中間通信的節(jié)點(diǎn),這篇文章主要介紹了在 Java 中獲取當(dāng)前設(shè)備的 IP 地址,需要的朋友可以參考下2023-06-06
關(guān)于使用MyBatis簡(jiǎn)化JDBC開發(fā)和解決SQL語(yǔ)句警告的問題
這篇文章主要介紹了關(guān)于使用MyBatis簡(jiǎn)化JDBC開發(fā)和解決SQL語(yǔ)句警告的問題,如果idea和數(shù)據(jù)庫(kù)沒有建立鏈接,idea不識(shí)別表的信息,就會(huì)出現(xiàn)SQL語(yǔ)句的警告,需要的朋友可以參考下2023-05-05
Java統(tǒng)計(jì)英文句子中出現(xiàn)次數(shù)最多的單詞并計(jì)算出現(xiàn)次數(shù)的方法
這篇文章主要介紹了Java統(tǒng)計(jì)英文句子中出現(xiàn)次數(shù)最多的單詞并計(jì)算出現(xiàn)次數(shù)的方法,涉及java針對(duì)英文句子的字符串遍歷、轉(zhuǎn)換、正則替換、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
SpringBoot @ConfigurationProperties注解的簡(jiǎn)單使用
即便現(xiàn)在簡(jiǎn)化了配置,但是一個(gè)獨(dú)立的配置文件總是易于理解而且使人安心的。Spring在構(gòu)建完項(xiàng)目后,會(huì)默認(rèn)在resources文件夾下創(chuàng)建一個(gè)application.properties文件,application.yml也是一樣的效果。@ConfigurationProperties可以獲取配置文件中的數(shù)據(jù),將其注入類。2021-05-05
Struts2學(xué)習(xí)教程之入門小白的開始基礎(chǔ)
struts2其實(shí)就是為我們封裝了servlet,簡(jiǎn)化了jsp跳轉(zhuǎn)的復(fù)雜操作,并且提供了易于編寫的標(biāo)簽,可以快速開發(fā)view層的代碼。下面這篇文章主要給各位想要學(xué)習(xí)Struts2的小白們?cè)敿?xì)介紹了關(guān)于Struts2入門的一些開始基礎(chǔ),需要的朋友可以參考下2018-04-04
Spring Cache + Caffeine的整合與使用示例詳解
對(duì)于一些項(xiàng)目里需要對(duì)數(shù)據(jù)庫(kù)里的某些數(shù)據(jù)一直重復(fù)請(qǐng)求的,且這些數(shù)據(jù)基本是固定的,在這種情況下,可以借助簡(jiǎn)單使用本地緩存來(lái)緩存這些數(shù)據(jù),本文介紹一下Spring Cache和Caffeine的使用,感興趣的朋友一起看看吧2023-12-12
java書店系統(tǒng)畢業(yè)設(shè)計(jì) 總體設(shè)計(jì)(1)
這篇文章主要介紹了java書店系統(tǒng)畢業(yè)設(shè)計(jì),第一步系統(tǒng)總體設(shè)計(jì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10

