📄 freemarker.java~14~
字号:
package com.ksgl.system.yolo;import java.io.*;import java.util.HashMap;import java.util.Map;import freemarker.template.*;/** * 测试FreeMarker. * * @author Terry.Chan * */public class FreeMarker { private Configuration freemarker_cfg = null; static String sGeneFilePath = "d:\\test\\"; static String sGeneFileName = "freemarker.htm"; static String sTempPlateFilePath = "d:\\test\\"; public static void main(String[] args) throws IOException { // @todo 创建一个类,然后创建instance NewsItem aItem = new NewsItem(); aItem.loadData(); FreeMarker test = new FreeMarker(); Map root = new HashMap(); root.put("newsitem", aItem); boolean bOK = test.geneHtmlFile("template.ftl", root, sGeneFilePath, sGeneFileName); } /** * 获取freemarker的配置. freemarker本身支持classpath,目录和从ServletContext获取. */ public 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”); // freemarker_cfg.setTemplateLoader(arg0) // freemarker_cfg.set try { freemarker_cfg.setDirectoryForTemplateLoading(new File( sTempPlateFilePath)); } catch (Exception ex) { ex.printStackTrace(); } } 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 从配置中取得要静态文件存放的根路径:需要改为自己的属性类调用 try { Template t = getFreeMarkerCFG().getTemplate(templateFileName); // 如果根路径存在,则递归创建子目录 creatDirs(htmlFilePath); File afile = new File(htmlFilePath + "/" + htmlFileName); Writer out = new BufferedWriter(new OutputStreamWriter( new FileOutputStream(afile))); t.process(propMap, out); } catch (TemplateException e) { System.out.println("freemarkertest.java error@@@@@@"+e); return false; } catch (IOException e) { System.out.println("freemarkertest.java error@@@@@@"+e); return false; } return true; } /** * 创建多级目录 * * @param aParentDir * String * @param aSubDir * 以 / 开头 * @return boolean 是否成功 */ public static boolean creatDirs(String path) { File aFile = new File(path); if (!aFile.exists()) { return aFile.mkdirs(); } else { return true; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -