Spring MVC 从 RequestMapping 引用 params 变量

Posted

技术标签:

【中文标题】Spring MVC 从 RequestMapping 引用 params 变量【英文标题】:Spring MVC referencing params variable from RequestMapping 【发布时间】:2011-06-27 10:01:15 【问题描述】:

我有以下方法:

@RequestMapping(value = "/path/to/iconId", params="size=iconSize", method = RequestMethod.GET)
public void webletIconData(@PathVariable String iconId, @PathVariable String iconSize, HttpServletResponse response) throws IOException 
    // Implementation here

我知道如何使用 @PathVariable 从 RequestMapping 传递变量“webletId”,但是如何从参数中引用变量“iconSize”?

非常感谢。

【问题讨论】:

【参考方案1】:

使用@RequestParam:

@RequestMapping(value = "/path/to/iconId", method = RequestMethod.GET) 
public void webletIconData(@PathVariable String iconId, 
    @RequestParam("size") String iconSize, 
    HttpServletResponse response) throws IOException  ... 

另请参阅:

15.3.2.3 Supported handler method arguments and return types

【讨论】:

【参考方案2】:

axtavt是对的

我只想解释你的错误是什么:

@RequestMappingparams 参数是一个过滤器,用于确保仅在存在具有请求值的参数时才调用带注释的处理程序方法。

因此,只有当请求参数action具有内容doSomething时,才会调用带有@RequestMapping(params="action=doSomething")注释的处理程序方法。

【讨论】:

以上是关于Spring MVC 从 RequestMapping 引用 params 变量的主要内容,如果未能解决你的问题,请参考以下文章

Spring 3 MVC 从控制器访问 HttpRequest

spring3 mvc 中怎么从当前action跳到另一个action中

从Spring MVC 到 Spring BOOT的简化道路

Spring mvc / security:从spring security中排除登录页面

从源码角度深度剖析 Spring MVC

Spring 3 MVC 从控制器访问全局变量