@RequestParam和@PathVariable的區別

轉載來源 https://blog.csdn.net/u011410529/article/details/66974974 有改動。

@RequestParam 和 @PathVariable 註解是用於從request中接收請求的,兩個都可以接收參數,關鍵點不同的是@RequestParam 是從request裏面拿取值,而 @PathVariable 是從一個URI模板裏面來填充(基於restful風格)

@RequestParam

看下面一段代碼:

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

根據上面的這個URL,你可以用這樣的方式來進行獲取

public String getDetails(
    @RequestParam(value="param1", required=true) String param1,
        @RequestParam(value="param2", required=false) String param2){
...
}

@RequestParam 支持下面四種參數

  • defaultValue 如果本次請求沒有攜帶這個參數,或者參數爲空,那麼就會啓用默認值
  • name 綁定本次參數的名稱,要跟URL上面的一樣
  • required 這個參數是不是必須的
  • value 跟name一樣的作用,是name屬性的一個別名

@PathVariable

這個註解能夠識別URL裏面的一個模板,我們看下面的一個URL

http://localhost:8080/springmvc/hello/101?param1=10&param2=20

上面的一個url你可以這樣寫:

@RequestMapping("/hello/{id}")
    public String getDetails(@PathVariable(value="id") String id,
    @RequestParam(value="param1", required=true) String param1,
    @RequestParam(value="param2", required=false) String param2){
.......
}

看完例子能感受到兩者明顯的差別了,在使用RestFul風格的時候使用@PathVariable,
直接通過鍵值對的方式使用@RequestParam即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章