📄 freemarkerutil.java
字号:
package com.common.util;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
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 FreemarkerUtil {
private Configuration freemarker_cfg = null;
private Log log = LogFactory.getLog(FreemarkerUtil.class);
/** */
/**
* 获取freemarker的配置. freemarker本身支持classpath,目录和从ServletContext获取.
*/
protected Configuration getFreeMarkerCFG() {
if (null == freemarker_cfg) {
// Initialize the FreeMarker configuration;
// - Create a configuration instance
freemarker_cfg = new Configuration();
// - FreeMarker支持多种模板装载方式,可以查看API文档,都很简单:路径,根据Servlet上下文,classpath等等
// htmlskin是放在classpath下的一个目录
freemarker_cfg.setClassForTemplateLoading(this.getClass(),
"/");
}
return freemarker_cfg;
}
/** */
/**
* 生成页面的字符串
*
* @param templateFileName
* 模板文件名,相对htmlskin路径,例如"/tpxw/view.ftl"
* @param propMap
* 用于处理模板的属性Object映射
* @param htmlFilePath
* 要生成的静态文件的路径,相对设置中的根路径,例如 "/tpxw/1/2005/4/"
* @param htmlFileName
* 要生成的文件名,例如 "1.htm"
*/
public boolean geneHtmlFile(String templateFileName, Map propMap,
String htmlFilePath, String htmlFileName) {
// @todo 从配置中取得要静态文件存放的根路径:需要改为自己的属性类调用
String sRootDir = " e:/webtest/htmlfile ";
try {
Template t = getFreeMarkerCFG().getTemplate(templateFileName);
File afile = new File(sRootDir + " / " + htmlFilePath + " / "
+ htmlFileName);
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(afile)));
t.process(propMap, out);
} catch (TemplateException e) {
log.error(" Error while processing FreeMarker template "
+ templateFileName, e);
return false;
} catch (IOException e) {
log.error(
" Error while generate Static Html File " + htmlFileName,
e);
return false;
}
return true;
}
public String getHtml(String templateFileName, Map propMap) {
String res = "";
try {
Template t = getFreeMarkerCFG().getTemplate(templateFileName);
ByteArrayOutputStream buf=new ByteArrayOutputStream();
Writer out = new BufferedWriter(new OutputStreamWriter(buf));
t.process(propMap, out);
res=buf.toString();
} catch (TemplateException e) {
log.error(" Error while processing FreeMarker template "
+ templateFileName, e);
} catch (IOException e) {
log.error(" Error while generate Static Html File ");
}
return res;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -