匹配任何以某个路径元素开头的url

时间:2016-05-16 13:54:55

标签: java regex spring spring-mvc spring-boot

我正在使用Spring Boot v1.3.3.RELEASE,并希望编写一个可以映射到以下任何内容的Web服务:

  • /富
  • /富/ A
  • /富/ A / B
  • /富/ A / B / C
  • /酒吧/ d
  • /酒吧/ d / E
  • ...

所以基本上任何以/foo/bar开头的事情都可以,之后可以有任意数量的路径元素。

我在想:

@RequestMapping("/{path:(foo|bar)(/[^/]+?)*}")
@ResponseBody
public String doStuff(final String path) throws Exception
{
    // Do stuff with path
}

但它似乎不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您无法在PathVariable中使用多个路径段,但您可以编写如下内容:

@RequestMapping({"/foo/**", "/bar/**"})
@ResponseBody
public String doStuff(HttpServletRequest request) throws Exception
{
    String path = request.getRequestURI();
    // Do stuff with path
}