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。

推薦閱讀: