i18N-动态修改地域

在应用总,地域是与用户相关联的,我们会将用户的基本信息存储在会话中
我们允许用户通过一个小菜单,修改站点语言,这样的话,就应该使用SessionLocaleResolver,我们需要建立一个配置类进行配置
1,建立配置类
建立包 masterSpringMvc.config

package masterSpringMvc.config;
@Configuration
public class webConfiguration extends WebMvcConfigurerAdapter
{
}
2.添加

@Bean
    public SessionLocaleResolver localeResolver()
    {
        return new SessionLocaleResolver();
    }
    
    @Bean
    public LocaleChangeInterceptor localeChangeInterceptor()
    {
        LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
        localeChangeInterceptor.setParamName("lang");
        return localeChangeInterceptor;
    }
    
    @Override
    public void addInterceptors(InterceptorRegistry registry)
    {
        registry.addInterceptor(localeChangeInterceptor());
    }
我们声明了一个LocaleChangeInterceptor作为Spring MVC的拦截器,他将会拦截所有发往控制器的请求,并检查lang查询函数
3.建立语言文件

中文
profile.title=CN(TITLE)
英文
profile.title=EN(TITLE)
4.在视图设置文本

<h3 th:text=#{profile.title}>profile</h3>