如何防止Spring MVC参数在“。”之后被截断。

时间:2013-09-24 13:34:50

标签: java spring-mvc

我正在开发一个Web项目并使用Spring MVC 3.1.1。 Spring MVC用于提供REST服务(使用URL注释)

关于我的问题:

假设我的服务网址路径为;

http://localhost:8080/MyAppName/services/meteo/queryWeatherData/lon/39.1123/lat/39.3123

我的控制器方法是;

@RequestMapping(method = RequestMethod.GET, value = {"/queryWeatherData/lon/{lon}/lat/{lat}"})
    public void queryWeatherData(
            final @PathVariable("lon") float lon,
            final @PathVariable("lat") float lat,
            final HttpServletResponse response, final HttpServletRequest request) {
//
// DO STUFF and prepare response
//
}

我看到第二个参数(lat)在“。”之后被截断。所以我看到服务器端的值是39.0。

我尝试在app-context.xml中声明一个DefaultAnnotationHandlerMapping bean,并将其useDefaultSuffixPattern设置为false,但它不起作用。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

使用DefaultAnnotationHandlerMapping声明useDefaultSuffixPattern=false bean是正确的方法,但请确保您也注释掉:

<mvc:annotation-driven />

请参阅:How to change Spring MVC's behavior in handling url 'dot' character