【问题标题】:Spring URI patterns. Using slashes inside regex pathSpring URI 模式。在正则表达式路径中使用斜杠
【发布时间】:2019-07-07 15:21:00
【问题描述】:

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

URI 模板:[host]/{regexpart}/endpoint

动态uri示例:

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

我还想在 uri 路径的正则表达式部分使用斜杠,如下所示:

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

我有这样的提示:

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

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

【问题讨论】:

  • 逃避它? [a-z\/]?
  • 很遗憾没有

标签: java regex spring uri


【解决方案1】:

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

您可能正在寻找类似的东西

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

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

这将允许您的 [host] 中以 /endpoint 结尾的任何有效路径 如果您需要将其限制为某些字符(例如 [a-z],这应该会让您走上正轨。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多