1、ftl页面引入spring.ftl
<#import "spring.ftl" as spring />
2、ftl页面中国际化使用示例
<@spring.message "base.site"/>
3、application.properties里添加spring.messages.basename=i18n/messages
resources/目录下创建文件messages.properties、messages_zh.properties、messages_en.properties
4、在获取ftl页面内容的时候实现国际化
ByteArrayOutputStream output = new ByteArrayOutputStream();
try{
Template tp = config.getTemmplate("test.ftl");
HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
HttpServletRequest response= ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getResponse();
RequestContext context = new RequestContext(request,response,request.getServletContext(),values);
context.changeLocale(Locale.CHINA);//国际化切换
values.put("springMacroRequestContext",requestContext);//这句是关键
tp.process(values, new OutputStreamWriter(output));//values为ftl初始化的map数据
}catch(Exception e){
e.printStackTrace();
}