弹簧控制器中的正则表达式

zma*_*anc 23 java regex spring routes spring-mvc

我正在尝试构建一个请求过滤器,只有当它匹配字母e的模式,然后是数字时才会被使用.但是我似乎无法让它发挥作用.每次尝试使用正则表达式时,我都会遇到400错误.

如果我只是使用以下它"工作",但也捕获没有我不想要的数字的映射.

@RequestMapping(value = "e{number}",
            method = RequestMethod.GET)
Run Code Online (Sandbox Code Playgroud)

我尝试了以下组合.

@RequestMapping(value = "e{number}",
            params = "number:\\d+",
            method = RequestMethod.GET)

@RequestMapping(value = "e{number:\d+}",
            method = RequestMethod.GET)

@RequestMapping(value = "/e{^\\+?\\d+\$}",
            method = RequestMethod.GET)

@RequestMapping(value = "/{^\\e+?\\d+\$}",
            method = RequestMethod.GET)
Run Code Online (Sandbox Code Playgroud)

sam*_*sam 39

根据文档,你必须使用类似的东西{varName:regex}.甚至有一个例子:

@RequestMapping("/spring-web/{symbolicName:[a-z-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[a-z]+}")
  public void handle(@PathVariable String version, @PathVariable String extension) {
    // ...
  }
}
Run Code Online (Sandbox Code Playgroud)