【问题标题】:Setting Locale in spring mvc Controller在 spring mvc 控制器中设置语言环境
【发布时间】:2015-04-23 13:24:00
【问题描述】:

我面临着不同的场景。我有将用户的语言环境保存在数据库中的门户。当使用获取日志记录时。我正在获取用户详细信息,但我不知道如何在控制器中设置它。

我知道我们可以使用LocaleContextHolder 来设置语言环境,但我不知道它将如何与控制器一起使用。请你举个例子

这是我的控制器

@RequestMapping(value = "/showMotionProfile", method = RequestMethod.GET)
public String showMotionProfile(Model model, RedirectAttributes attributes,
        HttpServletRequest request) {

    Locale locale = LocaleContextHolder.getLocale();
    logger.info("---------->country"+locale.getCountry());

    logger.info("\n--------------showMotionProfile-----------\n");
    LocaleContextHolder.setLocale(locale.ITALIAN);
    logger.info("---------->country"+LocaleContextHolder.getLocale());

    return "showMotionProfile";
}

如果我做得对,请告诉我,因为它没有反映。

感谢您的帮助。

编辑:我的 spring xml 文件中有这个解析器配置:

<beans:bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleR‌​esolver"> 
    <beans:property name="defaultLocale" value="en" /> 
</beans:bean> 
<interceptors> 
    <beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeI‌​nterceptor">
        <beans:property name="paramName" value="locale"></beans:property> 
    </beans:bean> 
</interceptors> 

我可以通过在我的控制器中使用@Autowired 并设置语言环境来使用它吗?

【问题讨论】:

  • 不要。只需实现自定义LocaleResolver 并适当配置即可。
  • 我的 spring xml 文件中有这个解析器配置。 我可以通过在我的控制器中自动连接并设置语言环境来使用它吗?
  • 请不要将配置添加为cmets,修改您的帖子。如果您的配置存储在数据库中,您需要一个自定义的LocaleResolver,它最初从数据库中读取它,存储在会话或 cookie(或其他任何东西)中,并且有一个很好的后备。然后你可以使用常规的LocaleChangeInterceptor来修改Locale
  • 我已经在会话中保存了语言环境,我可以在控制器中自己使用 LocaleChangeIntercepter 来更改语言环境

标签: spring spring-mvc servlets


【解决方案1】:

总的来说,你是在正确的轨道上:

  • SessionLocaleResolver 添加到您的应用程序上下文中。
  • LocalChangeInterceptor 添加到您的应用程序上下文中,但请注意这只会更改当前语言环境,前提是“语言环境”作为请求参数传递给您的任何网络控制器
  • 或者,将 sessionLocalResolver 注入您的控制器(使用 @Autowire 或应用程序上下文 XML)并在其上调用 setLocale 方法。这样您就可以将数据库中的语言环境值传递给它。

【讨论】:

    猜你喜欢
    • 2011-09-20
    • 2011-06-24
    • 1970-01-01
    • 2014-09-15
    • 2019-04-01
    • 2018-03-31
    • 2011-01-24
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多