Spring Boot中@RequestParam參數的5種情況說明
Spring Boot中@RequestParam參數的5種情況
實例如下:
// 可帶參數可不帶參數,方法都能執行 @RequestMapping("/list") public String test1(Long userId){ return ""; } //必須帶參數,不帶參數會報錯,不會執行方法 @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,地址裡面傳入的參數名稱為id @RequestMapping("/list") public String test5(@RequestParam(value = "id") Long userId){ return ""; }
Spring Boot註解:@RequestParam詳解
@RequestParam主要用於將請求參數區域的數據映射到控制層方法的參數上,@RequestParam註解參數主要有:
1.value:參數名字,即入參的請求參數名字
如keyword表示請求的參數區中的名字為keyword的參數的值將傳入;請求中傳入參數的名稱,如果不設置後臺接口的value值,則會默認為請求區中參數的變量名。
比如上圖中第一個參數如果不設置value=“keyword”,則前端傳入的參數名必須為keyword,否則在後臺接口中keyword將接收不到對應的數據。
2.required:該參數是否為必傳項。
默認是true,表示請求中一定要傳入對應的參數,否則會報404錯誤,如果設置為false時,當請求中沒有此參數,將會默認為null,而對於基本數據類型的變量,則必須有值,這時會拋出空指針異常。
如果允許空值,則接口中變量需要使用包裝類來聲明。
3.defaultValue:參數的默認值
如果請求中沒有同名的參數時,該變量默認為此值。註意默認值可以使用SpEL表達式,如
"#{systemProperties[‘java.vm.version']}"
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- 關於@RequestParam註解的使用(簡單易懂)
- 淺談@RequestParam 參數是否必須傳的問題
- @RequestParam 接收參數的值為null的處理方式
- Spring Boot 控制層之參數傳遞方法詳解
- Spring Boot Rest常用框架註解詳情簡介