springBoot页面国际化
springBoot国际化就是指页面可以按照中英文切换显示。实现步骤大致分为三步:1,配置国际化文件2.写国际化类添加组键中3.页面展示。大致原理就是LocaleResolver根据获取请求头中的信息,进行判断。
第一步:编写properties格式例如login_zg_CN(国际化页面+语言代码+国家代码)和login_en_US同时要写一个默认的login.propertiesrg格式如图:
再编写具体内容:如图先点击Resource Bundle 再点击+号进行属性的添加,只需要添加一个,另外两个就会加上。
再在application.properties里配置 name后边写的是resources下的文件夹名和里面的文件名
注意:如果我们的配置文件可以直接放在类路径下叫messages.properties;那么不用再为我们的配置文件再在application.properties里配置
二、写国际化类:首先写一个类实现LocaleResolver,例如:
现在前台页面定义l如图:
public class MyLocaleResolver implements LocaleResolver {
public Locale resolveLocale(HttpServletRequest request) {
String l= request.getParameter("l");//获取login前台页面传过来参数(l自定义的)
Locale locale =Locale.getDefault();//初始化是默认的
if (!StringUtils.isEmpty(l)){//判断是否为null
String[]spilt= l.split("_");由于格式是en_us的格式,所以以_分割。
locale=new Locale(spilt[0],spilt[1]);//截取之后把新的属性封装给local
}
return locale;
}
再在配置类中进行配置:
@Configuration//配置类首先必有的
public class MyMvcConfig implements WebMvcConfigurer {//要实现webMvcConfigurer
@Bean //向容器中添加组件
public LocaleResolver localeResolver(){
return new MyLocaleResolver(); //返回值类型是之前国际化类的那个类
}
三、springBoot前台页面默认使用的是thymeleaf,因此我也用的是thymeleaf如图:
thymeleaf的大致语法:th:text="#{login.tip}" #是解析国际化配置文件的属性的在 半闭合标签情况下用[[]]里面写#{}解析。
大致效果就可以实现点击切换。如图: