Spring URI模式。在正则表达式路径中使用斜杠

时间:2019-02-13 17:29:45

标签: java regex spring uri

我想在uri模式中使用正则表达式创建带有动态uri的enpoint。

URI模板: [主机] / {regexpart} /端点

动态uri的示例:

  • [主机] / a /端点
  • [主机] / b /端点

我也想在uri路径的正则表达式部分中使用斜杠,例如:

  • [主机] / a / b /端点
  • [host] / a / b / c / d / endpoint

我这样说:

@GetMapping(path = "/{regexpart:[a-z/]*}/endpoint")
public DeferredResult<ResponseEntity<?>> enpoint(@PathVariable("regexpart") String regexpart) {
    // Some logic 
}

但是它不起作用。有没有办法定义正则表达式以在其中使用斜杠?谢谢!

1 个答案:

答案 0 :(得分:1)

编写方式,正则表达式模式限制在1个路径段之内。

您可能正在寻找的东西

@GetMapping(path = "/**/endpoint")

**将允许跨多个路径段的任何字符。

这将允许您[主机]中以/endpoint结尾的任何有效路径 如果您需要将其限制为某些字符(例如[a-z],那么应该可以助您一臂之力。