是否可以通过跟踪url的关键字来映射spring mvc控制器。例如,假设我有以下网址:
example.com/{cityName}
example.com/{cityName}/{categoryName}
example.com/{cityName}/ping
example.com/{cityName}/{categoryName}/ping
我想拥有3种控制器方法。第一个url应由控制器“X”处理,第二个url应由方法“Y”处理,第3个url应由单个方法“Z”处理。这意味着任何以/ping
结尾的网址都只能由方法“Z”处理。无论该网址的主要内容是什么。
这在Spring MVC中是否可行?
答案 0 :(得分:1)
是否可以通过尾随关键字a来映射spring mvc控制器 URL?
是的,您可以使用 Ant风格的路径模式。以下控制器将处理以/ping
结尾的URL的任何请求,具有任意数量的级别:
@RequestMapping(path = "**/ping")
public String Z(HttpServletRequest request) {
return request.getRequestURI();
}
为了提取那些路径变量,例如cityName
和categoryName
,您应该将HttpServletRequest
注入方法处理程序。
除URI模板外,@RequestMapping
注释还支持 Ant风格的路径模式。您可以在Spring Documentation上阅读更多内容。
答案 1 :(得分:0)
看起来你要求将斜杠作为控制器映射的一部分。 Spring MVC and the maintainers have no plans to add it不支持此功能。作为一种特殊情况,如果您仅限于两个级别的“目录”,则可以如上所述明确指定映射。