【问题标题】:LocaleChangeInterceptor - what is the expected behaviour?LocaleChangeInterceptor - 预期的行为是什么?
【发布时间】:2012-10-23 15:05:03
【问题描述】:

我刚刚迈出了国际化领域的第一步,我将准备一个用于多语言使用的 Spring MVC 应用程序。我搜索并阅读了一些示例(例如:http://viralpatel.net/blogs/spring-3-mvc-internationalization-i18n-localization-tutorial-example/),看起来很简单。我使用了与此示例完全相同的设置以及其中引用的修复程序中的代码。我在不同论坛上的许多帖子中都看到了相同的设置。

我不完全理解的一件事是:我有一个控制器方法,其映射如下所示:

@RequestMapping(value = "/placeDetails.htm", method = RequestMethod.GET) public String showPlaceDetails(Model model, @RequestParam(value = "placeId", required = true) int placeId, Locale locale) {

它会捕获这样的请求: www.me.com/placeDetails.htm?placeId=123。

我添加到“更改语言”菜单项的 href 表示 href="?lang=en"。据我所知,我最终得到了 URL www.me.com/placeDetails.htm?lang=en(当我将鼠标悬停在菜单项上时,我看到了这个)。上面的方法的请求映射将无法识别这一点,并且我从 Tomcat 收到一条错误消息,提示“客户端发送的请求在语法上不正确 ()。”。我的控制器知道没有使用名为 lang 的参数调用 www.me.com/placeDetails.htm。

这是(现在仍然是)我的假设,即我不应该添加另一个具有包含 lang 参数的请求映射的方法。我假设 LocaleChangeInterceptor 会拦截这个调用并处理它。

所以我的问题是:我是否做出了正确的假设,如果我不是,当控制器方法具有其他参数时,拦截器应该如何工作。如果我做出正确的假设 - 任何想法为什么这不起作用。

【问题讨论】:

  • 没关系。我在其他地方发现我希望 Spring 会做的事情,它没有做。

标签: model-view-controller internationalization interceptor


【解决方案1】:

试试这个非常简单直接的方法。它对我有用。

http://semikas.blogspot.gr/2012/07/spring-3-internationalization-and.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2021-10-15
    • 2016-11-12
    相关资源
    最近更新 更多