带有尾随字符串url的Spring MVC地图控制器

时间:2016-05-04 09:19:54

标签: java spring spring-mvc

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

  1. example.com/{cityName}
  2. example.com/{cityName}/{categoryName}
  3. example.com/{cityName}/ping
  4. example.com/{cityName}/{categoryName}/ping
  5. 我想拥有3种控制器方法。第一个url应由控制器“X”处理,第二个url应由方法“Y”处理,第3个url应由单个方法“Z”处理。这意味着任何以/ping结尾的网址都只能由方法“Z”处理。无论该网址的主要内容是什么。

    这在Spring MVC中是否可行?

2 个答案:

答案 0 :(得分:1)

  

是否可以通过尾随关键字a来映射spring mvc控制器   URL?

是的,您可以使用 Ant风格的路径模式。以下控制器将处理以/ping结尾的URL的任何请求,具有任意数量的级别:

@RequestMapping(path = "**/ping")
public String Z(HttpServletRequest request) {
    return request.getRequestURI();
}

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

除URI模板外,@RequestMapping注释还支持 Ant风格的路径模式。您可以在Spring Documentation上阅读更多内容。

答案 1 :(得分:0)

看起来你要求将斜杠作为控制器映射的一部分。 Spring MVC and the maintainers have no plans to add it不支持此功能。作为一种特殊情况,如果您仅限于两个级别的“目录”,则可以如上所述明确指定映射。