- 现象:
Spring MVC 用@RequestMapping注解处理请求,请求中可以带路径参数,但是对路径参数使用正则表达式却不能匹配,代码如下:
@RequestMapping(method = RequestMethod.GET, value = "/users/{username:[a-z0-9_]+}")
在IDEA中,正则表达式颜色是黑色的:
运行也会出现无法匹配的错误。
换成@GetMapping就不会出现问题:
@GetMapping("/users/{username:[a-z0-9_]+}")
IDEA中的截图:
同样,@PostMapping使用正则表达式也没有问题:
- 结论:
如果想要带路径参数,不能使用@RequestMapping注解,可以分别换成对应的@GetMapping和@PostMapping注解
- 说明:
上述问题对应的spring-web jar 版本:spring-web-4.3.2.RELEASE.jar