最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

POST方法給@RequestBody傳參數(shù)失敗的解決及原因分析

 更新時間:2021年10月22日 11:22:30   作者:凌淵閣  
這篇文章主要介紹了POST方法給@RequestBody傳參數(shù)失敗的解決及原因分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

POST方法給@RequestBody傳參數(shù)失敗

通過ajax給springMVC傳遞參數(shù)時,通過post方法傳遞json字符串時常用的方式,這時后端應該通過@RequestBody注解配合springMVC中配置的消息轉(zhuǎn)換器來進行json字符串的解析。

因為post方法中的json字符串通常是一個前端的json對象轉(zhuǎn)化而成的字符串,所以后端@RequestBody后面可以使用HashMap<String,Object>類型來接收所有參數(shù)。

通過這種方式可以非顯式的傳送大量的參數(shù)到后端,并且和具體參數(shù)無關,便于以后對參數(shù)進行擴展,對于不確定參數(shù)的場合,這種方式解除了與具體參數(shù)的耦合。但是由于簡單的過程實際上經(jīng)歷了許多SpringMVC的操作,所以經(jīng)常會遇到各種奇怪問題。

其中post方法請求體中的json字符串無法成功通過SpringMVC中配置的MessageConverter(一般是MappingJackson2HttpMessageConverter)轉(zhuǎn)換為@RequestBody注解的HashMap對象,是可以見到的問題。

這個時候你可以檢查下ajax請求的content-type請求頭,因為在配置MessageConverter消息轉(zhuǎn)換器的時候,需要配置其所檢查的請求體類型(content-type),默認情況下瀏覽器的ajax會添加content-type:application/x-www-form-urlencoded的請求頭,但是有的瀏覽器或者有些時候會發(fā)送content-type:application/x-www-form-urlencoded;charset:utf-8到后端,導致MappingJackson2HttpMessageConverter漏過對它的檢查,這個時候SpringMVC會使用其他的MessageConverter來解析request body中的內(nèi)容,這樣肯定是會解析失敗的。

如果遇到這種情況,比較好的解決方式,可能是在ajax的post請求中強制注明 contentType:application/json,并將application/json 和application/json;charset=utf-8兩種MediaType(MimeType)添加到MappingJackson2HttpMessageConverter對象的檢查列表中。

這樣就可以保證post方法的請求體中的json字符串被MappingJackson2HttpMessageConverter對象檢查并解析。

@RequestBody參數(shù)映射不上,@RequestBody報錯

最近代碼遇見了一個springmvc中的小問題,算是很基礎的東西,同事問我后我有有些迷惑上網(wǎng)找了一些資料后弄清楚了。特此記錄一下springmvc注解@requestbody來傳遞參數(shù)映射一個對象。

言歸正傳問題是這樣的

使用postMan 發(fā)送httppost 請求:

最后報錯。

報錯原因

在使用postMan發(fā)送post請求的時候沒有選擇如下:

也就是下面說的需要注意的地方需要注意的地方是:

1.前端做保存操作的時候提交了很多參數(shù)過來,前端代碼提交的時候content-type改成application/json,后臺也配置了一個針對spring4的son類型的httpmessageConverter,

@RequsetBody 綁定的數(shù)據(jù)類型 :

一般用來處理非Content-Type: application/x-www-form-urlencoded編碼格式的數(shù)據(jù)。

GET請求中,因為沒有HttpEntity,所以@RequestBody并不適用。POST請求中,通過HttpEntity傳遞的參數(shù),必須要在請求頭中聲明數(shù)據(jù)的類型Content-Type,SpringMVC通過使用HandlerAdapter 配置的HttpMessageConverters來解析HttpEntity中的數(shù)據(jù),然后綁定到相應的bean上。

1,使用@RequestBody 前后端參數(shù)要匹配個數(shù)不能少。字段名字要一樣。

2,檢查配置文件spring的版本。對應的 spring4 的版本的適配器 對應的:

請用org.springframework.http.converter.json.MappingJacksonHttp2MessageConverter ,選擇的這種配置用的是jackson2.X版本的,用來解析json數(shù)據(jù)。

spring 3.x的對應的版本:

org.springframework.http.converter.json.MappingJacksonHttpMessageConverter 

這種配置用的是jackson1.X版本的

3,必須要在請求頭中聲明數(shù)據(jù)的類型Content-Type,

4,前端json數(shù)據(jù)和后端json數(shù)據(jù) 首字母不要大寫,首字母大寫映射不上,以駝峰格式命名。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Spring Boot結(jié)成MyBatis-Plus最全配置指南

    Spring Boot結(jié)成MyBatis-Plus最全配置指南

    本文主要介紹了Spring Boot結(jié)成MyBatis-Plus最全配置指南,包括依賴引入、配置數(shù)據(jù)源、Mapper 掃描、基本CRUD操作等,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • 基于Java ActiveMQ的實例講解

    基于Java ActiveMQ的實例講解

    下面小編就為大家?guī)硪黄贘ava ActiveMQ的實例講解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • spring+maven實現(xiàn)發(fā)送郵件功能

    spring+maven實現(xiàn)發(fā)送郵件功能

    這篇文章主要為大家詳細介紹了spring+maven實現(xiàn)發(fā)送郵件功能,利用spring提供的郵件工具來發(fā)送郵件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • 詳解Java的readBytes是怎么實現(xiàn)的

    詳解Java的readBytes是怎么實現(xiàn)的

    眾所周知,Java是一門跨平臺語言,針對不同的操作系統(tǒng)有不同的實現(xiàn),下面小編就來從一個非常簡單的api調(diào)用帶大家來看看Java具體是怎么做的吧
    2023-07-07
  • springboot @RequiredArgsConstructor的概念與使用方式

    springboot @RequiredArgsConstructor的概念與使用方式

    這篇文章主要介紹了springboot @RequiredArgsConstructor的概念與使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • SpringBoot項目中讀取resource目錄下的文件六種方法

    SpringBoot項目中讀取resource目錄下的文件六種方法

    這篇文章給大家總結(jié)了SpringBoot項目中讀取resource目錄下的文件六種方法,文中有詳細的代碼示例供大家參考,具有一定的參考價值,需要的朋友可以參考下
    2024-05-05
  • MyBatis批量插入/修改/刪除MySql數(shù)據(jù)

    MyBatis批量插入/修改/刪除MySql數(shù)據(jù)

    這篇文章主要給大家介紹了關于MyBatis批量插入/修改/刪除MySql數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05
  • Java多線程導致CPU占用100%解決及線程池正確關閉方式

    Java多線程導致CPU占用100%解決及線程池正確關閉方式

    1000萬表數(shù)據(jù)導入內(nèi)存數(shù)據(jù)庫,按分頁大小10000查詢,多線程,15條線程跑,最后發(fā)現(xiàn)CPU占用100%卡死,那么如何解決,本文就來介紹一下,感興趣的朋友可以了解一下
    2021-05-05
  • springMVC的生命周期詳解

    springMVC的生命周期詳解

    本篇文章主要介紹了springMVC的生命周期詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 淺析Java的Spring框架中IOC容器容器的應用

    淺析Java的Spring框架中IOC容器容器的應用

    這篇文章主要介紹了Java的Spring框架中IOC容器容器的應用,包括BeanFactory容器和ApplicationContext容器的介紹,需要的朋友可以參考下
    2015-12-12

最新評論

涞源县| 英吉沙县| 沙坪坝区| 上栗县| 惠水县| 调兵山市| 罗源县| 南宫市| 松溪县| 湘潭县| 富蕴县| 晴隆县| 安乡县| 福贡县| 斗六市| 开封县| 孟津县| 祁连县| 偃师市| 绥中县| 宝鸡市| 南康市| 呈贡县| 桐庐县| 法库县| 新邵县| 聂荣县| 华蓥市| 台北县| 九江市| 革吉县| 鸡西市| 阳春市| 淮安市| 子长县| 临漳县| 望奎县| 那曲县| 武冈市| 西和县| 平阴县|