@RequestParam到底是加還是不加呢

我們在學習的過程中會發現有時候不加@RequestParam也沒有關係,照樣可以獲取到前端傳過來的參數,加上了似乎也沒啥用,那麼到底加不加呢。下面實驗一下不加的時候和加的時候有啥區別,相信就明白了到底用不用加。

不加的時候

@GetMapping("/request")
@ResponseBody
 public String test01(String name){
     String returnValue = "返回的字符串爲:"+name;
     return returnValue;
 }

分三種請求:

①不帶參數直接請求

在這裏插入圖片描述
返回null

②帶正確參數請求

在這裏插入圖片描述
返回我們發送的參數對應的值。

③帶錯誤參數(參數名不一致)

在這裏插入圖片描述
還是返回null,後臺對我們傳過來的參數名不一致也是認爲我們沒有傳參的,這和Java的通過類型來判斷是不一樣的。


加上

@GetMapping("/request")
@ResponseBody
public String test01(@RequestParam(value = "haha") String name){
    String returnValue = "返回的字符串爲:"+name;
    return returnValue;
}

還是分三種情形來分析,注意上面的參數名不一致,一個是haha,一個是name

①不帶參數

在這裏插入圖片描述
前端已經報錯,後臺一切正常。爲什麼呢?
@RequestParam(required = false)還有一個參數required,默認爲true,要求我們必須傳參數。設置爲false之後,效果如下:
在這裏插入圖片描述

②傳的參數名爲haha

在這裏插入圖片描述
後臺接收到了參數,並正常返回。

③傳的參數名爲name

在這裏插入圖片描述
後臺沒有接收到參數。


通過分析得出如下結論:

  • @RequestParam默認要求必須傳參,可以通過設置required = false來關閉
  • 如果爲@RequestParam設置參數名,以他爲準,不設置的話默認爲其後的類型參數名
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章