Spring MVC映射控制器,尾部字符串为url



是否可以通过url的尾随关键字来映射springmvc控制器。例如,假设我有以下网址:

  1. example.com/{cityName}
  2. example.com/{cityName}/{categoryName}
  3. example.com/{cityName}/ping
  4. 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();
}

为了提取路径变量,例如cityNamecategoryName,您应该将HttpServletRequest注入方法处理程序。

除了URI模板,@RequestMapping注释还支持Ant样式的路径模式。您可以在Spring文档中阅读更多内容。

看起来您要求将斜线作为控制器映射的一部分进行匹配。这在Spring MVC中是不支持的,维护人员也没有添加它的计划。作为特殊情况,如果你只限于两个级别的"目录",你可以如上明确指定映射。

最新更新