Spring Boot中@RequestParam參數的5種情況說明
Spring Boot中@RequestParam參數的5種情況
實例如下:
// 可帶參數可不帶參數,方法都能執(zhí)行 @RequestMapping("/list") public String test1(Long userId){ return ""; } //必須帶參數,不帶參數會報錯,不會執(zhí)行方法 @RequestMapping("/list") public String test2(@RequestParam Long userId){ return ""; } //true代表必須帶參數,和tes2一樣 @RequestMapping("/list") public String test3(@RequestParam(required = true) Long userId){ return ""; } //和test1一樣,可以帶參數也可以不帶參數 @RequestMapping("/list") public String test4(@RequestParam(required = false) Long userId){ return ""; } //在地址里面可以不帶參數,如果帶了參數會接收,不帶參數會默認為0 @RequestMapping("/list") public String test(@RequestParam(defaultValue = "0") Long userId){ return ""; } //前面幾種寫法中參數必須為userId才能接收到值,但是如果加了value樹形,會用userId,地址里面?zhèn)魅氲膮得Q為id @RequestMapping("/list") public String test5(@RequestParam(value = "id") Long userId){ return ""; }
Spring Boot注解:@RequestParam詳解
@RequestParam主要用于將請求參數區(qū)域的數據映射到控制層方法的參數上,@RequestParam注解參數主要有:
1.value:參數名字,即入參的請求參數名字
如keyword表示請求的參數區(qū)中的名字為keyword的參數的值將傳入;請求中傳入參數的名稱,如果不設置后臺接口的value值,則會默認為請求區(qū)中參數的變量名。
比如上圖中第一個參數如果不設置value=“keyword”,則前端傳入的參數名必須為keyword,否則在后臺接口中keyword將接收不到對應的數據。
2.required:該參數是否為必傳項。
默認是true,表示請求中一定要傳入對應的參數,否則會報404錯誤,如果設置為false時,當請求中沒有此參數,將會默認為null,而對于基本數據類型的變量,則必須有值,這時會拋出空指針異常。
如果允許空值,則接口中變量需要使用包裝類來聲明。
3.defaultValue:參數的默認值
如果請求中沒有同名的參數時,該變量默認為此值。注意默認值可以使用SpEL表達式,如
"#{systemProperties[‘java.vm.version']}"
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。