package cn.dreampie.common.plugin.mail;
import com.jfinal.kit.PathKit;
import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.File;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Locale;
import java.util.Map;
/**
* Created by wangrenhui on 2014/7/2.
*/
public class MailerTemplate {
private static MailerTemplate mailerTemplate = new MailerTemplate();
/**
* 邮件模板的存放位置
*/
private static final String TEMPLATE_PATH = "/template/";
/**
* 模板引擎配置
*/
private static Configuration configuration;
/**
* 参数
*/
private static Map<Object, Object> parameters;
static {
configuration = new Configuration();
// ClassTemplateLoader ctl= new ClassTemplateLoader(MailerTemplate.class, TEMPLATE_PATH);
try {
configuration.setTemplateLoader(new FileTemplateLoader(new File(PathKit.getWebRootPath() + TEMPLATE_PATH)));
} catch (IOException e) {
e.printStackTrace();
}
configuration.setEncoding(Locale.getDefault(), "UTF-8");
configuration.setDateFormat("yyyy-MM-dd HH:mm:ss");
}
public static MailerTemplate me() {
//初始化参数
parameters = new HashMap<Object, Object>();
return mailerTemplate;
}
public MailerTemplate set(String attr, Object value) {
parameters.put(attr, value);
return this;
}
public String getText(String templateFile) {
try {
Template template = configuration.getTemplate(templateFile);
StringWriter stringWriter = new StringWriter();
template.process(parameters, stringWriter);
return stringWriter.toString();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}