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

📄 freemarkertest.java.svn-base

📁 Eclipse代码生成器,支持Eclipse3.3 WTP版本,该项目实现了Spring + hibernate + webService + struts 框架文件的自动生成,有这方面需求的个人公司
💻 SVN-BASE
字号:
package com.newegg.test;

import java.io.*;
import java.util.HashMap;
import java.util.Map;

import freemarker.template.*;

/*
 * Created on 2005-4-7 
 * 
 */

/**
 * 测试FreeMarker.
 * 
 * @author scud
 * 
 */
public class FreeMarkerTest
{

	private Configuration freemarker_cfg = null;

	public static void main(String[] args)
	{
		// @todo 自己的一个类

		// @todo 装入新闻
		// NewsItem = loadNewsItem(1);

		FreeMarkerTest test = new FreeMarkerTest();

		Map root = new HashMap();
		root.put("newsitem", null);

		String sGeneFilePath = "/tpxw/";

		String sFileName = "1.htm";

		boolean bOK = test.geneHtmlFile("/tpxw/view.ftl", root, sGeneFilePath, sFileName);

	}

	/**
	 * 获取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(), "/htmlskin");
		}

		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);

			// 如果根路径存在,则递归创建子目录
			creatDirs(sRootDir, htmlFilePath);

			File afile = new File(sRootDir + "/" + htmlFilePath + "/" + htmlFileName);

			Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(afile)));

			t.process(propMap, out);
		} catch (TemplateException e)
		{
			// logger.error("Error while processing FreeMarker template " + templateFileName,e);
			return false;
		} catch (IOException e)
		{
			// logger.error("Error while generate Static Html File " + htmlFileName,e);
			return false;
		}

		return true;
	}

	/**
	 * 创建多级目录
	 * 
	 * @param aParentDir
	 *            String
	 * @param aSubDir
	 *            以 / 开头
	 * @return boolean 是否成功
	 */
	public static boolean creatDirs(String aParentDir, String aSubDir)
	{
		File aFile = new File(aParentDir);
		if (aFile.exists())
		{
			File aSubFile = new File(aParentDir + aSubDir);
			if (!aSubFile.exists())
			{
				return aSubFile.mkdirs();
			} else
			{
				return true;
			}
		} else
		{
			return false;
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -