【问题标题】:@RequestParam, name vs value attributes@RequestParam,名称与值属性
【发布时间】:2018-11-11 12:40:11
【问题描述】:

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

namevalue 属性有什么区别?

文档说:

value : name() 的别名。

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" 是要绑定的请求参数的名称,而 String param1 是要绑定的对象。

我如何在这里使用name 属性?

【问题讨论】:

  • 你认为 alias for name 是什么意思...这很明显恕我直言。
  • 请看一下编辑
  • 这是个好问题。值通常意味着存储在变量中的值。为什么他们会使用它作为 name 或 id 的别名,这超出了我的理解。

标签: spring spring-mvc


【解决方案1】:

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

你可以这样使用:

@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

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 1970-01-01
    • 2021-02-02
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    相关资源
    最近更新 更多