如何在spring boot中以编程方式设置defaultLocale

gok*_*cii 6 java spring spring-mvc internationalization spring-boot

我正在按照指南进行春季国际化,它实现了LocalResolver这样

@Bean
public LocaleResolver localeResolver() {
    SessionLocaleResolver sessionLocaleResolver = new SessionLocaleResolver();
    sessionLocaleResolver.setDefaultLocale(Locale.US);
    return sessionLocaleResolver;
}
Run Code Online (Sandbox Code Playgroud)

但我想defaultLocal通过在数据库中获取用户语言信息进行设置并设置它我该怎么做?感谢帮助

Cyr*_*ril 5

我认为您想为当前会话设置语言环境,而不是默认语言环境。假设有一个现有的会话(即用户登录后):

Autowire LocaleResolverHttpServletRequestHttpServletResponse使用LocaleResolver.setLocale方法:

    Locale userLocale = getLocaleByUsername(username); //load from DB
    localeResolver.setLocale(httpServletRequest, httpServletResponse, userLocale);
Run Code Online (Sandbox Code Playgroud)

这将为当前会话设置区域设置。