2017-02-19 132 views
3

我正在閱讀Spring MVC中的@RequestParam註釋的documentation@RequestParam,名稱與值屬性

名稱屬性有什麼區別?

文檔說:

值:別名名稱()。

name:要綁定到的請求參數的名稱。

這是什麼意思別名()

假設有:

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

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

例如,value="param1"是請求參數結合的名稱,而String param1是綁定到對象。

我怎麼能在這裏使用name屬性?

+2

你覺得**別名名稱**手段..這是非常明顯的imho。 –

+0

請看看編輯 – Johan

回答

5

兩者的功能都與只是不同的替代命名相同。無論你喜歡使用你將獲得相同的功能。任何一個都可以使用,但是如果你同時使用它們,確保爲它們使用相同的值,否則你會得到異常。

你被允許使用這樣的:

@RequestParam(value="param1", required=true) 
@RequestParam(name="param1", required=true) 
@RequestParam(value="param1", required=true, name="param1") 

但不是這樣的:

@RequestParam(value="param1", required=true, name="param3") 

參考:http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestParam.html