2012-10-23 32 views
-1

我剛剛踏入國際化領域的第一步,在那裏我將準備一個用於多語言使用的Spring MVC應用程序。我用google搜索了幾個例子(比如這個:http://viralpatel.net/blogs/spring-3-mvc-internationalization-i18n-localization-tutorial-example/),它看起來非常簡單。我使用了這個例子中的完全相同的設置和它引用的修復中的代碼。我在不同論壇上的許多帖子中都看到了相同的設置。LocaleChangeInterceptor - 預期的行爲是什麼?

有一兩件事我不完全理解是這樣的:我有一個看起來像這樣的映射控制器的方法:

@RequestMapping(值=「/placeDetails.htm」,方法= RequestMethod.GET ) 公共字符串showPlaceDetails(型號模型,@RequestParam(值= 「placeId」,需要=真)INT placeId,區域設置區域){

它會趕上這樣一個的請求: www.me.com/placeDetails的.htm?placeId = 123。

我添加到「更改語言」菜單項的href表示href =「?lang = en」。據我所知,我最終得到的網址是www.me.com/placeDetails.htm?lang=en(當我將鼠標懸停在菜單項上時,我可以看到這一點)。上面的方法請求映射不會識別這個,並且我從Tomcat收到一條錯誤消息,說:「客戶端發送的請求在語法上不正確()。」。我的控制器知道沒有通過名爲lang的參數調用www.me.com/placeDetails.htm。

這是(現在仍然是)我的假設,我不應該添加一個包含lang參數的請求映射的另一個方法。我認爲LocaleChangeInterceptor會攔截這個調用並處理它。

所以我的問題是:我做出了正確的假設,如果我不是,當控制器方法有其他參數時攔截器應該如何工作。如果我正在做出正確的假設 - 任何想法爲什麼這不起作用。

+0

沒關係。我在其他地方發現了我希望春天會做的事情,但沒有做到。 –

回答

相關問題