一.使用场景
在工作中经常会遇到向前端发送一段模板填充的数据,今天主要以邮件为例子记录下怎么实现。
二.实现
1. resource 建立模板
模板内容如下:
<p>您好,${name},您的工号信息如下:</p>
<table border="1" cellspacing="0">
<tr><td><strong style="color: #F11">员工工号</strong></td><td>${code}</td></tr>
<tr><td><strong style="color: #F11">员工职位</strong></td><td>${position}</td></tr>
</table>
<p>这是其他信息</p>
其中 $ {name},$ {code} ,$ {position}为模板参数,可自定义填充,其他参数可参照HTML
2.模板读取填充
public static void main(String[] args) {
Map<String, String> params =new HashMap<String, String>();
System.out.println("=================1.0 此处进行模板参数设定===========");
params.put("name","马云");
params.put("code","123");
params.put("position","CEO");
System.out.println("=================2.0 配置=================");
FreeMarkerConfigurer freeMarkerConfigurer =new FreeMarkerConfigurer();
Configuration cfg = new Configuration(Configuration.VERSION_2_3_27);
cfg.setClassLoaderForTemplateLoading(ClassLoader.getSystemClassLoader(),"ftl");
freeMarkerConfigurer.setConfiguration(cfg);
try {
System.out.println("=================3.0 此处进行模板获取===========");
Template template = freeMarkerConfigurer.getConfiguration().getTemplate("email.ftl");
System.out.println("=================4.0 此处进行模板参数填充===========");
String mailText = FreeMarkerTemplateUtils.processTemplateIntoString(template, params);
System.out.println("==========5.0 邮件模板填充数据后内容为============= \n"+mailText);
System.out.println("==========6.0 后续进行发送邮件即可============= ");
}catch (TemplateNotFoundException e) {
e.printStackTrace();
} catch (MalformedTemplateNameException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
最后将数据返回给前端即可