1

私は Web プロジェクトに取り組んでおり、Spring MVC 3.1.1 を使用しています。Spring MVC を使用して REST サービスを提供します (URL アノテーションを使用)

私の問題に関して:

サービスの 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
//
}

2 番目のパラメーター (緯度) が "." の後に切り捨てられていることがわかります。したがって、サーバー側で値が 39.0 であることがわかります。

app-context.xml で DefaultAnnotationHandlerMapping Bean を宣言して、その useDefaultSuffixPattern を false に設定しようとしましたが、機能しませんでした。

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

2

DefaultAnnotationHandlerMappingでBean を宣言するのuseDefaultSuffixPattern=falseが正しい方法ですが、コメントアウトも忘れずに行ってください。

<mvc:annotation-driven />

参照: URL の「ドット」文字の処理における Spring MVC の動作を変更する方法

于 2013-09-24T13:56:23.507 に答える