⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 freemarkerutil.java

📁 使用WEBWORK,SPRING,HIBERNATE编写的简单的添加
💻 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 + -