13

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

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

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

4

3 回答 3

17

好问题,我也一直想知道这个问题,直到我发现文档中提到了它:

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

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

大多数时候,除非我的方法参数名称与请求参数不同,否则我不会指定这个,或者,如果该值是可选的,我将需要使用required=false.

于 2018-01-24T03:17:20.283 回答
0

@RequestParam 用于传递查询参数。

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

在这里,我们可以使用以下代码获取状态

@RequestParam(value="status") 字符串状态

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

@RequestParam(value="status",required=false)

URL 类似于http://localhost:8080/employee/get

于 2018-01-24T07:24:18.270 回答
-1

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

我认为这在这里很清楚。

于 2013-04-25T12:23:16.880 回答