我面临着不同的场景。我有一个门户网站,它将用户的语言环境保存在数据库中。当使用get logging。我收到用户详细信息但我不知道如何在控制器中设置它。
我知道我们可以使用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.SessionLocaleResolver">
<beans:property name="defaultLocale" value="en" />
</beans:bean>
<interceptors>
<beans:bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
<beans:property name="paramName" value="locale"></beans:property>
</beans:bean>
</interceptors>
我可以在控制器中使用@Autowired
并设置区域设置吗?
答案 0 :(得分:3)
一般来说,你走在正确的轨道上:
LocalChangeInterceptor
添加到您的应用程序上下文中。@Autowire
添加到您的应用程序上下文中,但请注意这只会更改当前的区域设置,如果&#34; locale&#34;作为请求参数传递给任何Web控制器。setLocale
或应用程序上下文XML)并在其上调用let
方法。这样您就可以从数据库中传递区域设置值。