Spring Boot 整合 Thymeleaf 模板引擎(三) 之 实现国际化

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>

 中文版

英文版

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值