@RequestParam,名称与值属性

问题描述:

我正在阅读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

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

你被允许使用这样的:

@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