什么时候在Spring MVC中不需要@RequestParam注释?

时间:2013-04-25 03:40:37

标签: java spring-mvc

我正在查看一些Spring 3 MVC控制器代码,我发现@RequestParam用于某些参数而不是其他参数。不使用它的示例:

@RequestMapping(value = "/experiments", method = RequestMethod.GET)
public String getExperimentsPage(ExperimentSearchCriteria criteria, Map<String, Object> model) {
    // method body here
}

何时不需要@RequestParam(或类似的参数指定注释)?

3 个答案:

答案 0 :(得分:4)

好问题,我一直在想这个,直到我发现它在文档中被提到:

  

请注意,使用@RequestParam是可选的,例如设定它   属性。默认情况下,任何参数都是简单的值类型,如   由BeanUtils#isSimpleProperty确定,并且不被任何解析   其他参数解析器,被视为使用注释   @RequestParam。

https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-requestparam

大部分时间,除非我的方法参数名称与请求参数不同,否则我不会指定此项,或者,如果值是可选的,我将需要使用required=false

答案 1 :(得分:1)

我不确定您的问题,但是当您想要将方法参数与请求所持有的参数绑定时,您只需要@RequestParam

我认为这很清楚here

答案 2 :(得分:0)

@RequestParam用于传递查询参数。

示例:http://localhost:8080/employee/get?status=ACTIVE

我们可以通过以下代码获取状态

@RequestParam(value =&#34; status&#34;)字符串状态

我们有一些属性,如required,defaultValue等。如果你提供如下面的代码行中提到的required = false,那么status参数在URL中不是必需的

@RequestParam(值=&#34;状态&#34;,需要=假)

网址将与http://localhost:8080/employee/get

类似