废话不多说直接上源码
导入freemarker-2.3.8.jar包
1.FreeMarker类
package com.uitl; import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; import java.io.StringWriter; import java.util.HashMap; import java.util.Map; import freemarker.template.Configuration; import freemarker.template.DefaultObjectWrapper; import freemarker.template.Template; import freemarker.template.TemplateException; /*** * * @author ZhuangZi * @version $Id: Test.java,v 0.1 2013-3-5 下午02:44:35 ZhuangZi Exp $ */ public class FreeMarker { @SuppressWarnings("unchecked") /*** * @author Administrator * @Directions 生成HTML模板 * @param ftlpath 模板存放路径 * @param htmlpath HTML文件存放路径 * @param tempName 生成HTML文件名 * @return null */ public static void creatHtml(String ftlpath, String htmlpath, String tempName) { /* 在整个应用的生命周期中,这个工作你应该只做一次。 */ /* 创建和调整配置。 */ Configuration cfg = new Configuration(); try { cfg.setDirectoryForTemplateLoading(new File(ftlpath)); cfg.setObjectWrapper(new DefaultObjectWrapper()); /* 在整个应用的生命周期中,这个工作你可以执行多次 */ /* 获取或创建模板*/ Template temp = cfg.getTemplate(tempName + ".ftl"); /* 创建数据模型 */ Map root = new HashMap(); root.put("user", "Big Joe"); Map latest = new HashMap(); root.put("latestProduct", latest); latest.put("url", "products/greenmouse.html"); latest.put("name", "green mouse"); /* 将模板和数据模型合并 */ StringWriter out = new StringWriter(); temp.process(root, out); System.out.println(out.toString()); //写入html文件 File file = new File(htmlpath + tempName + ".html"); if (!file.exists()) { file.mkdirs(); } if (file.exists()) { file.delete(); } RandomAccessFile ra = null; ra = new RandomAccessFile(file, "rw"); ra.write(out.toString().getBytes("gb2312")); ra.close(); out.flush(); } catch (IOException e) { e.printStackTrace(); } catch (TemplateException e) { e.printStackTrace(); } } public static void main(String[] args) { creatHtml("WebRoot/ftl", "WebRoot/html", "test"); } }
2.WebRoot/ftl文件夹下的模板文件
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>test.ftl</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <!--<link rel="stylesheet" type="text/css" href="./styles.css">--> </head> <body> <h1> Welcome ${user}<#if user == "Big Joe">, our beloved leader</#if>! </h1> <p>Our latest product: <a href="${latestProduct.url}">${latestProduct.name}</a>! </body> </html>
3.运行FreeMarker类的main方法,会自动在.WebRoot下创建html文件
OK了,你就使劲顶贴吧 哈哈