第一步:准备模板(需要填充的值 : ${值名})
第二步:导入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 "空";
}
}
本文详细介绍了如何使用Freemarker进行邮件模板的创建和配置,包括准备需要填充值的模板、导入Freemarker库、将模板放置于web工程的web-INF/ftl目录并更改后缀为ftl,以及配置FreeMarkerConfigurer来指定模板位置和解决乱码问题。在发送邮件时,通过将模板转换为字符串,实现了动态内容的邮件发送。
956

被折叠的 条评论
为什么被折叠?



