目录
一、 在pom中引入thymeleaf模板引擎
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
二、添加登录页面和静态样式文件
可去bootstrap官网下载页面模板
https://getbootstrap.com/
三、在resources下面创建一个i18n的文件夹,然后创建login.properties
login.tip=请登录
login.btn=登录
login.password=密码
login.remember=记住我
login.email=邮箱地址
#-------------
login.tip=Please sign in
login.btn=Sign In
login.password=Password
login.remember=Remember Me
login.email=Email address
四、页面加入thymeleaf标签引入国际化
五、在application.yml添加配置
spring:
messages:
basename: i18n.login
六、自定义LocaleResolver
package com.ltl.config;
import org.springframework.util.StringUtils;
import org.springframework.web.servlet.LocaleResolver;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Locale;
public class MyLocaleResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
String language = request.getParameter("language");
Locale locale = Locale.getDefault();
if(!StringUtils.isEmpty(language)){
String[] split = language.split("_");
locale = new Locale(split[0],split[1]);
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
}
}
七、自定义MyMvcConfig实现接口WebMvcConfigurer中的addViewControllers方法,方便实现页面跳转,并添加自定义的国际化组件
package com.ltl.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.LocaleResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class MyMvcConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/").setViewName("login");
registry.addViewController("/index").setViewName("login");
}
/*相当于
@Controller
public class Contrller {
@RequestMapping("/")
public String test() {
return "login";
}
}
*/
//自定义国际化组件
@Bean
public LocaleResolver localeResolver(){
return new MyLocaleResolver();
}
}
八、运行