日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

注解@RequestParam【不添加默认项注解】与@RequestBody的使用场景

發布時間:2025/3/12 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 注解@RequestParam【不添加默认项注解】与@RequestBody的使用场景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、前言
一直有這么一個疑問:在使用postman工具測試api接口的時候,如何使用 json 字符串傳值呢,而不是使用 x-www-form-urlencoded 類型,畢竟通過 key-value 傳值是有局限性的。假如我要測試批量插入數據的接口呢,使用 x-www-form-urlencoded 方法根本就不適用于這種場景。

那么如何通過postman工具使用json字符串傳值呢,這里就引申出來了spring的兩個注解:

  • @RequestParam
  • @RequestBody

總而言之,這兩個注解都可以在后臺接收參數,但是使用場景不一樣。繼續往下看 ↓

二、@RequestParam
先介紹一下@RequestParam的使用場景:

注解@RequestParam接收的參數是來自requestHeader中,即請求頭。通常用于GET請求,比如常見的url:http://localhost:8081/spring-boot-study/novel/findByAuthorAndType?author=唐家三少&type=已完結,其在Controller 層的寫法如下圖所示:

@RequestParam有三個配置參數:

required 表示是否必須,默認為 true,必須。
defaultValue 可設置請求參數的默認值。
value 為接收url的參數名(相當于key值)。
@RequestParam用來處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內容,Content-Type默認為該屬性。

@RequestParam也可用于其它類型的請求,例如:POST、DELETE等請求。比如向表中插入單條數據,Controller 層的寫法如下圖所示:

由于@RequestParam是用來處理 Content-Type 為 application/x-www-form-urlencoded 編碼的內容的,所以在postman中,要選擇body的類型為 x-www-form-urlencoded,這樣在headers中就自動變為了 Content-Type : application/x-www-form-urlencoded 編碼格式。如下圖所示:


但是這樣不支持批量插入數據啊,如果改用 json 字符串來傳值的話,類型設置為 application/json,點擊發送的話,會報錯,后臺接收不到值,為 null。

這時候,注解@RequestBody就派上用場了。

三、@RequestBody

先介紹一下@RequestBody的使用場景:

注解@RequestBody接收的參數是來自requestBody中,即請求體。一般用于處理非 Content-Type: application/x-www-form-urlencoded編碼格式的數據,比如:application/json、application/xml等類型的數據。

就application/json類型的數據而言,使用注解@RequestBody可以將body里面所有的json數據傳到后端,后端再進行解析。

3.1 向表中批量插入數據
舉個批量插入數據的例子,Controller層的寫法如下圖所示:


由于@RequestBody可用來處理 Content-Type 為 application/json 編碼的內容,所以在postman中,選擇body的類型為row -> JSON(application/json),這樣在 Headers 中也會自動變為 Content-Type : application/json 編碼格式。body內的數據如下圖所示:

批量向表中插入兩條數據,這里的 saveBatchNovel()方法已經封裝了 JPA的 saveAll() 方法。body 里面的 json 語句的 key 值要與后端實體類的屬性一一對應。

注意:前端使用$.ajax的話,一定要指定 contentType: “application/json;charset=utf-8;”,默認為 application/x-www-form-urlencoded。

3.2 后端解析json數據
上述示例是傳遞到實體類中的具體寫法,那么如果傳遞到非實體類中,body里面的json數據需要怎么解析呢?我們再來看下面這個例子:

在body中,我們還是輸入上面的json數據,根據分析,上面的json數據是一個List數組內嵌套著map對象,那么在后臺的接收形式可寫為 List<Map<String, String>>,具體代碼如下圖所示:



控制臺輸出:


四、總結
注解@RequestParam接收的參數是來自requestHeader中,即請求頭。通常用于GET請求,像POST、DELETE等其它類型的請求也可以使用。

注解@RequestBody接收的參數是來自requestBody中,即請求體。一般用于處理非 Content-Type: application/x-www-form-urlencoded編碼格式的數據,比如:application/json、application/xml等類型的數據。通常用于接收POST、DELETE等類型的請求數據,GET類型也可以適用。

**重點補充:**在使用注解@RequestParam的時候【不加注解的時候效果與@RequestParam類似】,在body data中我們不能傳json字符串類型的參數,否則對象中是接收不到傳遞參數相應的值。相應的在@RequestBody注解標記的形式上傳遞表格參數則會報錯。

postman模擬發送請求【@RequestParam接受json字符串】:

debug斷點后頁面展示的結果:

postman模擬發送請求【@RequestBody接受application/x-www-form-urlencoded表格參數】:


代碼以及報錯顯示:

總結

以上是生活随笔為你收集整理的注解@RequestParam【不添加默认项注解】与@RequestBody的使用场景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 最近2018年手机中文字幕版 | 日本无遮羞调教打屁股网站 | 久草资源| 日本中文字幕成人 | 中文av字幕| 亚洲欧美日韩第一页 | 91国语对白 | 亚洲国产aⅴ精品一区二区的游戏 | 日韩综合一区二区三区 | 亚洲女人网 | 免费一级特黄 | 午夜精品三级久久久有码 | 91麻豆精品91久久久久同性 | 亚洲乱亚洲 | 午夜男人天堂 | 天天成人 | 国产一区一一区高清不卡 | 欧美日本在线视频 | 在线视频这里只有精品 | 日韩综合在线 | 黄色三级小视频 | gai免费观看网站外网 | 欧美在线观看一区二区三区 | 天天色综合天天 | 久久精品国产视频 | 三上悠亚ssⅰn939无码播放 | 91亚洲一区| 天天爽夜夜操 | 性一交一乱一色一视频麻豆 | 色呦呦| 久久神马影院 | 久久香焦 | 91精品人妻一区二区三区果冻 | 亚洲国产视频网站 | wwxx日本 | 日韩成人在线网站 | 裸体裸乳被免费看视频 | 日韩视频在线观看二区 | 国产精品久久久免费视频 | 91av一区二区三区 | 日批视频在线看 | 美女被草出白浆 | 国产高h视频 | 成人精品一区二区三区视频 | 国产免费不卡视频 | 午夜成人鲁丝片午夜精品 | 欧美aa在线观看 | 天天操精品 | 久久亚洲区 | 天天色一色| 欧美一二级| 午夜高清视频 | 麻豆av免费 | 456亚洲影视 | 日本黄色录像 | 成人123| 操碰97| 男生插女生的网站 | 午夜剧场福利社 | 国产美女一区 | 免费黄色国产视频 | 夜夜爽天天操 | 草草在线观看视频 | 国产婷| 日产精品一区二区 | 天堂在线中文在线 | 久久久久麻豆v国产精华液好用吗 | 女人做爰全过程免费观看美女 | 91精品欧美一区二区三区 | 日韩中文字幕网 | 国产免费看黄 | 久久亚洲AV成人无码国产野外 | 国产理论av| 精品国产户外野外 | 女的被男的操 | 亚洲 欧洲 日韩 | 成年人午夜网站 | 日本女优黄色 | 久久精品成人一区二区三区蜜臀 | 国产日韩欧美综合在线 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 久久久久久久久蜜桃 | 最新视频–x99av | 97精品人妻一区二区 | 中文字幕人妻色偷偷久久 | 99re久久精品国产 | 都市激情国产精品 | 久久久青 | 超碰成人久久 | 日日射天天干 | 不卡av免费 | 国产3p精品一区 | 中文字幕欧美在线 | 天天舔天天射天天干 | 国产精品久久久久久久妇 | 日本三级影院 | 中文字幕乱码人妻无码久久 | 久久综合影院 | 久久婷婷一区 |