@RequestParam,名称与值属性

时间:2017-02-19 11:29:50

标签: spring spring-mvc

我正在阅读Spring MVC中@RequestParam注释的documentation

名称属性有什么区别?

文档说:

  

value:name()的别名。

     

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"是要绑定的request-parameter的名称,而String param1是要绑定的对象。

我如何在此处使用name属性?

1 个答案:

答案 0 :(得分:13)

两者的功能相同,只是不同的替代命名。无论您喜欢使用哪种,您都将获得相同的功能。可以使用任何一个,但是如果你同时使用它们,请确保为它们使用相同的值,否则你将获得异常。

您可以这样使用:

@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