java如何在spring boot中以编程方式设置defaultLocale
我遵循的是spring国际化的this指南,它是这样实现的LocalResolver
@Bean
public LocaleResolver localeResolver() {
SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
sessionLocaleResolver.setDefaultLocale(Locale.US);
return sessionLocaleResolver;
}
但我想通过获取数据库中的用户语言信息来设置defaultLocal
,并设置它。我如何才能做到这一点?谢谢你的帮助
# 1 楼答案
我认为您需要设置当前会话的区域设置,而不是默认区域设置。 假设存在现有会话(即用户登录后):
自动连线
LocaleResolver
、HttpServletRequest
和HttpServletResponse
并使用LocaleResolver.setLocale
方法:这将设置当前会话的区域设置
# 2 楼答案
如果您使用spring安全性,这个解决方案可能会对您有所帮助
国际化配置:
Spring安全配置:
控制器:
# 3 楼答案
您可以尝试的一种标准方法是使用HttpHeaders。接受_语言标题。我假设您正在数据库中存储受支持的区域设置,所以为了方便起见,将其移动到属性文件中,因为记录的数量不会太多。那就试试我的方法