@RequestParam,名称与值属性

Joh*_*han 7 spring spring-mvc

我正在阅读Spring MVC 中的注释文档@RequestParam.

名称属性有什么区别?

文件说:

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){
        ...
}
Run Code Online (Sandbox Code Playgroud)

例如,value="param1"是要绑定的request-parameter的名称,而是要绑定String param1的对象.

我怎么能name在这里使用属性?

Mon*_*mul 15

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

您可以这样使用:

@RequestParam(value="param1", required=true)
@RequestParam(name="param1", required=true)
@RequestParam(value="param1", required=true, name="param1")
Run Code Online (Sandbox Code Playgroud)

但不是这个:

@RequestParam(value="param1", required=true, name="param3")
Run Code Online (Sandbox Code Playgroud)

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