`

Freemaker生成静态html页面 .

阅读更多

FreeMarker 是一个用Java编写的模板引擎,主要用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但不像PHP,通常由Java程序准备要显示的数据,由 FreeMarker模板生成页面。 FreeMarker可以作为Web应用框架一个组件,但它与容器无关,在非Web应用程序环境也能工作的很好。 FreeMarker适合作为MVC的视图组件,还能在模板中使用JSP标记库。

  1.    
  2. import java.io.BufferedWriter;  
  3. import java.io.File;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.io.OutputStreamWriter;  
  7. import java.io.Writer;  
  8. import java.util.Map;  
  9.   
  10. import freemarker.template.Configuration;  
  11. import freemarker.template.Template;  
  12. import freemarker.template.TemplateException;  
  13.   
  14. /** 
  15.  * freemarker生成静态html 
  16.  * @author lpz 
  17.  * 
  18.  */  
  19. public class GeneratorHtml {  
  20.     private Configuration config = null;    
  21.     
  22.     /**  
  23.      * 如果目录不存在,则自动创建 
  24.      * @param path  
  25.      * @return boolean 是否成功  
  26.      */    
  27.     private boolean creatDirs(String path) {    
  28.         File aFile = new File(path);    
  29.         if (!aFile.exists()) {    
  30.             return aFile.mkdirs();    
  31.         } else {    
  32.             return true;    
  33.         }    
  34.     }    
  35.     
  36.     /** 
  37.      * 模板生成静态html的方法 
  38.      * @param templateFileName(模板文件名) 
  39.      * @param templateFilePath(指定模板目录) 
  40.      * @param contextMap (用于处理模板的属性Object映射) 
  41.      * @param htmlFilePath(指定生成静态html的目录) 
  42.      * @param htmlFileName(生成的静态文件名) 
  43.      */  
  44.     @SuppressWarnings("unchecked")    
  45.     public void geneHtmlFile(String templateFileName, String templateFilePath, Map contextMap,    
  46.             String htmlFilePath, String htmlFileName) {    
  47.     
  48.         try {    
  49.             Template t = this.getFreeMarkerCFG(templateFilePath).getTemplate(templateFileName);    
  50.             // 如果根路径存在,则递归创建子目录     
  51.             this.creatDirs(htmlFilePath);    
  52.             File afile = new File(htmlFilePath + "/" + htmlFileName);    
  53.             Writer out = new BufferedWriter(new OutputStreamWriter(    
  54.                     new FileOutputStream(afile)));    
  55.             t.process(contextMap, out);    
  56.             out.flush();    
  57.             out.close();    
  58.         } catch (TemplateException e) {    
  59.             System.out.print(e.getMessage());    
  60.         } catch (IOException e) {    
  61.             System.out.print(e.getMessage());    
  62.         } catch (Exception e) {    
  63.             System.out.print(e.getMessage());    
  64.         }    
  65.     }    
  66.     
  67.     /**  
  68.      *   
  69.      * 获取freemarker的配置,freemarker本身支持classpath,目录或从ServletContext获取.  
  70.      *   
  71.      * @param templateFilePath  
  72.      *            获取模板路径  
  73.      * @return Configuration 返回freemaker的配置属性  
  74.      * @throws Exception  
  75.      */    
  76.     private Configuration getFreeMarkerCFG(String templateFilePath)    
  77.             throws Exception {    
  78.         if (null == this.config) {    
  79.     
  80.             this.config = new Configuration();    
  81.             try {    
  82.                 this.config.setDirectoryForTemplateLoading(new File(    
  83.                         templateFilePath));    
  84.             } catch (Exception ex) {    
  85.                 throw ex;    
  86.             }    
  87.         }    
  88.         return this.config;    
  89.     }    
  90.   
  91. }  
分享到:
评论

相关推荐

    FreeMarker教你如何生成html静态页面源码

    FreeMarker教你如何生成html静态页面源码

    hudson.freemarker_ide_0.9.14

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。  FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被设计用来生成HTML Web页面,特别是基于...

    jsp 静态引擎(freemarker)生成静态html案例

    2.freemarker 写出来的页面一般都是xml格式友好的,也就是说你可以写出很规范的xhtml,而且还可以直接使用一些xml的代码格式化工具直接美化.而且很容易发现其中缺少或者嵌套错误的tag 3. 个人觉得freemarker 和taglib...

    freemarker-2.3.19.tar.gz

    FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。

    FreeMarker与struts2整合生成静态页面

    FreeMarker与struts2整合,一个小案例实现【增删改查】生成静态页面。内含数据库sql文件及效果图。数据库是mysql,c3p0+dbUtils实现数据操作。是一个完整的案例。

    java Freemarker页面静态化实例详解

    Freemarker FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板...总结:freemarker 模版引擎,可以使用 Freemarker 模版生成 html 页面。 Freemarker 语法 /** * freemark入门案例 * freemark三要素: * 1.

    FreeMarker_2.3.18中文版文档.pdf

    FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。

    freemarker简单示例

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。  FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被设计用来生成HTML Web页面,特别是基于MVC...

    FreeMarker_Manual_zh_CN.pdf

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。[1] FreeMarker与容器...

    FreeMarker

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。虽然FreeMarker具有一些编程的能力,但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据。[1]  FreeMarker与...

    freemarker中文手册

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式...

    FreeMarker开发手册

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。  FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被设计用来生成HTML Web页面,特别是基于MVC...

    freemarker-2.3.18

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。  FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写  FreeMarker被设计用来生成HTML Web页面,特别是基于MVC...

    freemarker两种用法,struts1.2的

    1.生成静态页面html 2.直接由模板获取数据显示出来

    HTML5-Ajax-Freemarker:通过HTML表示静态页面,Ajax和Freemarker做数据交互的一个动态小demo

    通过HTML表示静态页面,Ajax和Freemarker做数据交互的一个动态小demo 总共两个项目 ajax这个文件夹是用户ajax作为网络请求的 在request.js文件中造的json数据,前部分直接获取对应DOM标签进行赋值,下面的根据json的...

    FreeMarker模板设计指南

    FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来...但通常由Java程序准备要显示的数据,由FreeMarker生成页面,通过模板显示准备的数据

    FreeMarke实例代码

    模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式...

    网站内容管理系统jeecms3

    JEECMS是国内Java版开源网站内容管理系统 ...6. 完全生成全站静态页面,可自定义路径结构,全面提高页面访问速度 7.轻松建设大规模网站,可通过次级域名建立子站群,各子站后台管理权限分离,全站实现单点登录

    FreeMarker2.3.10PDF

    FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。

    Freemarker详解

    FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。

Global site tag (gtag.js) - Google Analytics