第一步:准备模板(需要填充的值 : ${值名})
第二步:导入freemarker包
第三步:把模板放到web工程的webinf目录下 并且后缀名改成ftl格式 把html文件改成ftl文件
第四步:配置模板配置 FreeMarkerConfigurer
功能:找到模板的位置
解决乱码问题
//设置模板位置
configurer.setTemplateLoaderPath("/WEB-INF/ftl/");
//设置编码级
configurer.setDefaultEncoding(“utf-8”);
@Bean
public FreeMarkerConfigurer freeMarkerConfigurer(){
FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer();
//设置模板位置
freeMarkerConfigurer.setTemplateLoaderPath("/WEB-INF/ftl");
freeMarkerConfigurer.setDefaultEncoding("utf-8");
return freeMarkerConfigurer;
}
当我们发送邮件时,需要在setText里放入String的字符串,那么,我们需要先把模板放到一个不用指定写出路径的流中(如果指定,那么就把文件写出到本地了)StringWrite
@Component
public class TemplateUtils {
@Autowired
private FreeMarkerConfigurer freeMarkerConfigurer;
public String getTemplateStr(String templateName, Map<String, String> map){
try {
Template template = freeMarkerConfigurer.getConfiguration().getTemplate(templateName, "utf-8");
StringWriter stringWriter = new StringWriter();
template.process(map,stringWriter);//填装数据hashMap,写出流
stringWriter.flush();
String s = stringWriter.toString();//把流转换为字符串满足邮件serText
stringWriter.close();
return s;
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
return "空";
}
}