具有正则表达式的Spring URI模板模式

嘿有人知道怎么能用@RequestMapping匹配这个URI“http:// localhost:8080 / test / user / 127.0.0.1:8002:8”。

我尝试编写这段代码:

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET,headers="Accept=application/xml" ) public void test(@PathVariable("id") String id) { System.out.println(id); return null; } 

但问题是,当我打印id时,值为:127.0.0也许是什么东西?

请参阅SpEL文档: http ://static.springsource.org/spring/docs/3.0.5.RELEASE/reference/expressions.html

你会想做这样的事情:

 @RequestMapping(value = "/user/{id:.*}", method = RequestMethod.GET,headers="Accept=application/xml" ) public void test(@PathVariable("id") String id) { 

如果你在Spring MVC中使用@Configuration -style,这将有所帮助:

 @Configuration public class Api extends WebMvcConfigurationSupport { @Bean public RequestMappingHandlerMapping requestMappingHandlerMapping() { RequestMappingHandlerMapping mapping = super.requestMappingHandlerMapping(); mapping.setUseSuffixPatternMatch(false); return mapping; } } 

如您所见,您必须在RequestMappingHandlerMapping禁用useSuffixPatternMatch

也可以看看:

  • 使用mvc:annotation-driven时配置RequestMappingHandlerMapping