是否可以通过url的尾随关键字来映射springmvc控制器。例如,假设我有以下网址:
example.com/{cityName}
example.com/{cityName}/{categoryName}
example.com/{cityName}/ping
example.com/{cityName}/{categoryName}/ping
我想要3种控制器方法。第一个url应由控制器"X"处理,第二个url应由方法"Y"处理,并且第三个、第四个url应由单个方法"Z"处理。这意味着任何以/ping
结尾的url都应该只通过方法"Z"来处理。无论该url的主要内容是什么。
这在Spring MVC中可行吗?
是否可以通过尾随关键字映射springmvc控制器url?
是的,您可以使用Ant样式的路径模式。以下控制器将处理对以/ping
结尾、具有任意级别的URL的任何请求:
@RequestMapping(path = "**/ping")
public String Z(HttpServletRequest request) {
return request.getRequestURI();
}
为了提取路径变量,例如cityName
和categoryName
,您应该将HttpServletRequest
注入方法处理程序。
除了URI模板,@RequestMapping
注释还支持Ant样式的路径模式。您可以在Spring文档中阅读更多内容。
看起来您要求将斜线作为控制器映射的一部分进行匹配。这在Spring MVC中是不支持的,维护人员也没有添加它的计划。作为特殊情况,如果你只限于两个级别的"目录",你可以如上明确指定映射。