Spring Boot中@RequestParam參數(shù)的5種情況說明
Spring Boot中@RequestParam參數(shù)的5種情況
實(shí)例如下:
// 可帶參數(shù)可不帶參數(shù),方法都能執(zhí)行 @RequestMapping("/list") public String test1(Long userId){ return ""; } //必須帶參數(shù),不帶參數(shù)會(huì)報(bào)錯(cuò),不會(huì)執(zhí)行方法 @RequestMapping("/list") public String test2(@RequestParam Long userId){ return ""; } //true代表必須帶參數(shù),和tes2一樣 @RequestMapping("/list") public String test3(@RequestParam(required = true) Long userId){ return ""; } //和test1一樣,可以帶參數(shù)也可以不帶參數(shù) @RequestMapping("/list") public String test4(@RequestParam(required = false) Long userId){ return ""; } //在地址里面可以不帶參數(shù),如果帶了參數(shù)會(huì)接收,不帶參數(shù)會(huì)默認(rèn)為0 @RequestMapping("/list") public String test(@RequestParam(defaultValue = "0") Long userId){ return ""; } //前面幾種寫法中參數(shù)必須為userId才能接收到值,但是如果加了value樹形,會(huì)用userId,地址里面?zhèn)魅氲膮?shù)名稱為id @RequestMapping("/list") public String test5(@RequestParam(value = "id") Long userId){ return ""; }
Spring Boot注解:@RequestParam詳解
@RequestParam主要用于將請(qǐng)求參數(shù)區(qū)域的數(shù)據(jù)映射到控制層方法的參數(shù)上,@RequestParam注解參數(shù)主要有:
1.value:參數(shù)名字,即入?yún)⒌恼?qǐng)求參數(shù)名字
如keyword表示請(qǐng)求的參數(shù)區(qū)中的名字為keyword的參數(shù)的值將傳入;請(qǐng)求中傳入?yún)?shù)的名稱,如果不設(shè)置后臺(tái)接口的value值,則會(huì)默認(rèn)為請(qǐng)求區(qū)中參數(shù)的變量名。
比如上圖中第一個(gè)參數(shù)如果不設(shè)置value=“keyword”,則前端傳入的參數(shù)名必須為keyword,否則在后臺(tái)接口中keyword將接收不到對(duì)應(yīng)的數(shù)據(jù)。
2.required:該參數(shù)是否為必傳項(xiàng)。
默認(rèn)是true,表示請(qǐng)求中一定要傳入對(duì)應(yīng)的參數(shù),否則會(huì)報(bào)404錯(cuò)誤,如果設(shè)置為false時(shí),當(dāng)請(qǐng)求中沒有此參數(shù),將會(huì)默認(rèn)為null,而對(duì)于基本數(shù)據(jù)類型的變量,則必須有值,這時(shí)會(huì)拋出空指針異常。
如果允許空值,則接口中變量需要使用包裝類來聲明。
3.defaultValue:參數(shù)的默認(rèn)值
如果請(qǐng)求中沒有同名的參數(shù)時(shí),該變量默認(rèn)為此值。注意默認(rèn)值可以使用SpEL表達(dá)式,如
"#{systemProperties[‘java.vm.version']}"
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Cache相關(guān)知識(shí)總結(jié)
今天帶大家學(xué)習(xí)Spring的相關(guān)知識(shí),文中對(duì)Spring Cache作了非常詳細(xì)的介紹,對(duì)正在學(xué)習(xí)Java Spring的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05