package com.jcommerce.core.util;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class TempleteProcessor {
private final Log logger = LogFactory.getLog(getClass());
private Configuration cfg = null;
protected Configuration getFreeMarkerCFG() {
if (null == cfg) {
// Initialize the FreeMarker configuration;
// - Create a configuration instance
cfg = new Configuration();
// cfg.setDirectoryForTemplateLoading(new File("./template"));
cfg.setTemplateLoader(new FileTemplateLoader());
}
return cfg;
}
/**
* 生成静态文件.
*
* @param templateFileName
* 模板文件名
* @param propMap
* 用于处理模板的属性Object映射
* @throws IOException
*/
public String getText(String templateName, Map propMap) throws IOException {
try {
Template t = getFreeMarkerCFG().getTemplate(templateName);
Writer out = new StringWriter();
t.process(propMap, out);
return out.toString();
} catch (TemplateException e) {
e.printStackTrace();
throw new IOException("Generate template: "+ templateName+", " +e.toString());
}
}
}