1.application.yml配置
#thymeleaf模板配置
spring:
thymeleaf:
prefix: classpath:/templates/
suffix: .html
cache: false #热部署文件,false页面不产生缓存,及时更新,true开启缓存
messages:
basename: messages/demo #指定外部属性文件位置
2.properties文件
demo_en_US.properties
global.welcome=welcome~!xiaoming
demo_zh_CN.properties
global.welcome=欢迎,小明
3.TemplateResolver实现语言区域解析器
import java.util.Locale;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.LocaleResolver;
import org.thymeleaf.util.StringUtils;
@Component
public class TemplateResolver implements LocaleResolver {
@Override
public Locale resolveLocale(HttpServletRequest request) {
Locale locale = Locale.getDefault();//默认
String l = request.getParameter("language");
HttpSession session = request.getSession();
if(!StringUtils.isEmpty(l)){
String[] split = l.split("_");
locale = new Locale(split[0],split[1]);
session.setAttribute("language", locale);
}else {
Object lang = session.getAttribute("language");
if(lang==null) {
session.setAttribute("language", locale);
}else {
locale = (Locale) lang;
}
}
return locale;
}
@Override
public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
// TODO Auto-generated method stub
}
}
4.语言区域解析器配置springmvc容器内
package priv.gitonlie.thymeleaf.configure;
import org.springframework.beans.factory.annotation.Autowired;
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.WebMvcConfigurationSupport;
@Configuration
public class TemplateConfigurerAdapter extends WebMvcConfigurationSupport {
@Autowired
private TemplateResolver resolver;
@Bean
public LocaleResolver localeResolver(){
return resolver;
}
}
5.新建Controller
@Controller
public class DemoController {
@RequestMapping("index")
public String index() {
return "index";
}
}
6.新建index.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Thymeleaf Demo演示页面</title>
</head>
<body>
<a href="" th:href="@{/index(language='zh_CN')}">中文</a><br/>
<a href="" th:href="@{/index(language='en_US')}">English</a><br/>
<p th:text="#{global.welcome}">welcome to my demo page</p>
</body>
</html>
中文版
英文版