弹簧控制器中的正则表达式
我正在尝试构建一个请求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
数字说明符之前的“转义斜杠”。