具有正则表达式的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