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

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

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

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

我尝试了以下组合。

 @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) 

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

 @RequestMapping("/spring-web/{symbolicName:[az-]+}-{version:\\d\\.\\d\\.\\d}{extension:\\.[az]+}") public void handle(@PathVariable String version, @PathVariable String extension) { // ... } } 

你应该使用:

  @RequestMapping("/e{number:\\d+}) 

注意\d数字说明符之前的“转义斜杠”。