Spring MVC中控制器类中方法的多个@RequestMapping

Posted

技术标签:

【中文标题】Spring MVC中控制器类中方法的多个@RequestMapping【英文标题】:Multiple @RequestMapping for a method in controller class in Spring MVC 【发布时间】:2014-01-02 08:47:42 【问题描述】:

我在 Spring MVC 的控制器类中有一个方法。

@RequestMapping("/home")
    public void contactHomeDispatcher()
    ...
    

是否可以为此方法映射另一个 url,例如“/contact”。我的问题是控制器中的单个方法是否可以有多个请求映射。

【问题讨论】:

什么情况下需要这个? 当你想要相同的功能但不同的 URL 时,可以在多租户应用程序或其他用户案例中需要它@vincent-ramdhanie 在 servlet 中,这就是为什么他们除了 servlet decleration 之外还有 servlet 映射 复制到:Multiple Spring @RequestMapping annotations 【参考方案1】:

作为上述的替代方案,您可以按以下格式声明@RequestMapping。

@RequestMapping(value = "/aaa", "/bbb", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")

【讨论】:

【参考方案2】:

您不能拥有多个@RequestMappings,但您可以拥有多个属性值的@RequestMappings:

@RequestMapping( "/home", "/contact" )

As you can see,@RequestMapping 的所有属性都是数组,因此可以取多个值。

【讨论】:

这正是我想要的。非常感谢。又一个要求。如何在下面的方法中再添加一个映射 @RequestMapping(value = "/add", method = RequestMethod.POST) 知道了...不用回复

以上是关于Spring MVC中控制器类中方法的多个@RequestMapping的主要内容,如果未能解决你的问题,请参考以下文章

从 MVC 中控制器中的不同方法向视图发送消息

MVC模式中控制器(servlet)接收请求参数、调用DAO、保存处理结果、改变路径并转发(响应)

类中的字段值不会使用 Spring Boot MVC 控制器更新

Spring 项目中控制器和服务类的通用类

asp.net MVC 框架中控制器里使用Newtonsoft.Json对前端传过来的字符串进行解析

多个 ajax 数据到 Spring MVC 控制器