在Spring MVC中使用@PathVariable绑定点分隔的字符串

xpa*_*pad 8 java spring spring-mvc

我的控制器中有以下方法:

@RequestMapping( value="/servers/{server}", method = RequestMethod.GET )
public @ResponseBody List<Application> getServerInformation( String server ) {
    logger.debug( "Request for server: " + server );
    ...
}
Run Code Online (Sandbox Code Playgroud)

当我请求/servers/test.myserver.com时,绑定变量的值为test.myserver.通常,对于包含点分隔值的任何请求,最后一部分将从绑定变量的值中省略.我使用的是Spring 3.0.4

有什么建议?

谢谢

awe*_*old 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 );
    ...
}
Run Code Online (Sandbox Code Playgroud)


Ara*_*d A 2

您可能想要更改 DefaultAnnotationHandlerMapping 的 useDefaultSuffixPattern。检查如何更改 Spring MVC 在处理 url '点' 字符时的行为以获取对此的讨论。