@requestbody---接受前端傳json對象並綁定javabean


@requestbody---接受前端傳json對象並綁定javabean----https://blog.csdn.net/ljxbbss/article/details/74452326

最近代碼遇見了一個springmvc中的小問題,算是很基礎的東西,同事問我后我有有些迷惑上網找了一些資料后弄清楚了。特此記錄一下

首先是后台代碼使用springmvc注解@requestbody,前端采用了easyui結合angulajs,老大把前端代碼封裝了很多東西,其實我們都是表面做工,就只是停留在使用層面上,包括后端框架的環境配置上,之前也是自己搭項目適合拷貝了一個base框架,時間長了對配置里面的具體內容都不是太了解了。

言歸正傳問題是這樣的:

1.前端做保存操作的時候提交了很多參數過來,老大封裝的同時把前端代碼提交的時候content-type改成了application/json,后台也配置了一個針對spring4的son類型的httpmessageConverter,某次提交的時候加了@requestbody注解的時候參數獲取不上並且報參數400,400這個狀態碼我們很了解,是因為參數類型不對,后來才發現是因為同事后台參數定義的實體bean比傳過來的參數少定義了一個參數導致報了400,這是第一個地方。

2.平時我在寫后台代碼給前端app做接口的時候,其實並沒有太在意,有些我都是直接沒有用@requestbody這個注解,直接在入參的地方寫了參數bean,也是可以直接解析到的。

答案:經過一番百度,發現了原因。springmvc這個地方針對前端提交參數的時候,有幾種content-type的類型,這個地方請參考這篇文章 :http://blog.csdn.net/blueheart20/article/details/45174399

關鍵得是@requestBody注解常用來處理content-type不是默認的application/x-www-form-urlcoded編碼的內容,比如說:application/json或者是application/xml等。一般情況下來說常用其來處理application/json類型。並且@requestbody傳送的參數需要是son對象即可;

附:form默認的提交方式content-type是x-www-form-urlencoded,會將傳遞的參數轉換成key-value方式。

 

 

附帶着說一下使用postman方式設置content-type為application/json方式測試后台接口

 

這個地方需要把要發送的參數寫成json對象的格式粘貼在raw下面,上面的路徑上就不用寫參數了。

更多的postman設置content-type參考:http://blog.csdn.net/qq_25730711/article/details/54707603。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM