Spring中@RequestParam使用及遇到的一些坑
加與不加的區(qū)別
@RequestMapping("/list1")
public String test1(int userId) {
return "list";
}
@RequestMapping("/list2")
public String test2(@RequestParam int userId) {
return "list";
}
(1)不加@RequestParam前端的參數(shù)名需要和后端控制器的變量名保持一致才能生效
(2)不加@RequestParam參數(shù)為非必傳,加@RequestParam寫(xiě)法參數(shù)為必傳。但@RequestParam可以通過(guò)@RequestParam(required = false)設(shè)置為非必傳。
(3)@RequestParam可以通過(guò)@RequestParam(“userId”)或者@RequestParam(value = “userId”)指定傳入的參數(shù)名。
(4)@RequestParam可以通過(guò)@RequestParam(defaultValue = “0”)指定參數(shù)默認(rèn)值
(5)如果接口除了前端調(diào)用還有后端RPC調(diào)用,則不能省略@RequestParam,否則RPC會(huì)找不到參數(shù)報(bào)錯(cuò)
(6)訪問(wèn)時(shí):
- 不加@RequestParam注解:url可帶參數(shù)也可不帶參數(shù),輸入 localhost:8080/list1 以及 localhost:8080/list1?userId=xxx 方法都能執(zhí)行
- 加@RequestParam注解:url必須帶有參數(shù)。也就是說(shuō)你直接輸入localhost:8080/list2 會(huì)報(bào)錯(cuò),不會(huì)執(zhí)行方法。只能輸入localhost:8080/list2?userId=xxx 才能執(zhí)行相應(yīng)的方法
使用RequestParam遇到的一些坑(總結(jié))
@RequestParam有三個(gè)常用的注解:
value:表示前端傳到后端時(shí),變量的名稱。(例如:前端傳到后端的參數(shù):userName="Tom",那么@RequestParam(value = "userName") String xxx)
required: boolean類(lèi)型,值為true/false。需要特別注意:required參數(shù)的意思其實(shí)更接近于在前端傳遞到后端的參數(shù)中,是否包含這個(gè)參數(shù)。什么意思呢?比如@RequestParam(value = "userName", required = true) String xxx),你傳userName=""是可以通過(guò)驗(yàn)證的,即可以required = true并不杜絕傳遞空值,只是驗(yàn)證傳遞的參數(shù)中是否含有userName。所以檢驗(yàn)參數(shù)的合法性一般還需要自行處理。
defaultValue: 為參數(shù)賦一個(gè)默認(rèn)值。 需要特別注意:如果設(shè)置了defaultValue,required設(shè)置將會(huì)失效,所以如果設(shè)置了defaultValue,就沒(méi)必要設(shè)置required了。
總結(jié)
到此這篇關(guān)于Spring中@RequestParam使用及遇到的一些坑的文章就介紹到這了,更多相關(guān)Spring @RequestParam使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)習(xí)Java多線程之線程定義、狀態(tài)和屬性
這篇文章主要為大家詳細(xì)介紹了Java多線程之線程定義、狀態(tài)和屬性,感興趣的小伙伴們可以參考一下2016-02-02
java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析
這篇文章主要為大家介紹了java快速排序和選擇排序?qū)崿F(xiàn)實(shí)例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
SpringBoot Swagger2 接口規(guī)范示例詳解
Swagger(在谷歌、IBM、微軟等公司的支持下)做了一個(gè)公共的文檔風(fēng)格來(lái)填補(bǔ)上述問(wèn)題,在本文中,我們將會(huì)學(xué)習(xí)怎么使用Swagger的 Swagger2注解去生成REST API文檔,感興趣的朋友一起看看吧2023-12-12
springboot項(xiàng)目整合注冊(cè)功能模塊開(kāi)發(fā)實(shí)戰(zhàn)
這篇文章主要介紹了springboot項(xiàng)目整合注冊(cè)功能模塊開(kāi)發(fā)實(shí)戰(zhàn),在用戶的注冊(cè)是首先需要查詢當(dāng)前的用戶名是否存在,如果存在則不能進(jìn)行注冊(cè),相當(dāng)于一個(gè)查詢語(yǔ)句,本文通過(guò)實(shí)例代碼詳細(xì)講解,需要的朋友可以參考下2022-11-11

