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