我的控制器中有以下方法:
@RequestMapping( value="/servers/{server}", method = RequestMethod.GET )
public @ResponseBody List<Application> getServerInformation( String server ) {
logger.debug( "Request for server: " + server );
...
}
当我请求 /servers/test.myserver.com 时,绑定变量的值为 test.myserver 。通常,对于包含点分隔值的任何请求,最后一部分将从绑定变量的值中省略。 我使用的是Spring 3.0.4
有什么建议吗?
由于
答案 0 :(得分:9)
您可以使用Ant样式匹配模式。对于您的示例,您可以这样做:
@RequestMapping( value="/servers/{server:.*}", method = RequestMethod.GET )
public @ResponseBody List<Application> getServerInformation(
@PathVariable(value = "server") String server ) {
logger.debug( "Request for server: " + server );
...
}
答案 1 :(得分:2)
您可能想要更改DefaultAnnotationHandlerMapping的useDefaultSuffixPattern。请查看How to change Spring MVC's behavior in handling url 'dot' character以获取有关此问题的讨论。