`

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. }  
分享到:
评论

相关推荐

    springboot整合freemarker生成静态html的demo.zip

    在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...

    教你如何用FreeMarker生成静态页面.doc

    以下是一个简单的Java代码示例,展示了如何使用FreeMarker生成静态页面: 1. 导入所需的FreeMarker库和IO相关的类。 2. 创建一个名为`FreeMarkerUtil`的公共类。 3. 定义一个静态方法`analysisTemplate`,接收模板...

    freemarker生成静态html示例

    本示例项目是在Eclipse环境中创建的一个工程,目的是演示如何使用Freemarker来生成静态HTML页面。 在了解这个项目之前,首先需要知道什么是Freemarker。Freemarker是一个开源的Java库,它允许开发者通过定义模板(....

    freemarker生成静态网页

    这可能是一个动态HTML的示例,或者是一个自定义的类,用于处理Freemarker生成静态页的过程。具体功能需要查看源代码才能明确。 通过以上步骤,你可以使用Freemarker轻松地将动态数据转化为静态网页。这种方式在网站...

    freemarker生成静态HTML例子

    本示例将详细介绍如何使用Freemarker生成静态HTML页面。 1. **Freemarker基本概念** - **模板**: Freemarker的核心是模板,它定义了输出文件的结构和样式,其中包含了一系列指令和变量。 - **数据模型**: 数据...

    使用FreeMarker生成Html静态文件

    通过这个过程,开发者能够利用FreeMarker将动态数据高效地转化为静态HTML页面,简化Web开发流程,使得非程序员也能参与到内容的生成中来。在实际项目中,FreeMarker经常与Spring MVC等框架结合使用,实现更复杂的...

    struts2+freemarker 生成静态页面

    在本项目中,“struts2+freemarker 生成静态页面”意味着利用这两个工具将动态网页转化为静态HTML页面,以提高网站性能和用户体验。 1. **Struts2框架**:Struts2提供了全面的MVC架构支持,包括动作(Action)类、...

    Struts2整合Freemarker生成静态页面

    以上就是Struts2整合Freemarker生成静态页面所涉及的主要知识点。通过熟练掌握这些,开发者可以有效地构建动态、高性能的Web应用。在提供的链接中,可能有更具体的示例和教程,帮助你深入理解和实践这一技术。

    freemarker生成静态页面------内含使用说明

    本篇文章将深入探讨Freemarker的工作原理、配置、语法以及在生成静态页面中的应用。 一、Freemarker的工作原理 Freemarker是一个基于Java的模板语言,它与后端服务器通过模板引擎进行交互。当用户请求页面时,...

    静态生成\ASP生成静态程序原理.rar

    在IT行业中,静态生成是一种网页制作技术,它将动态生成的内容转换为静态HTML页面,以提高网站的加载速度和搜索引擎优化(SEO)。本文件“静态生成\ASP生成静态程序原理.rar”显然关注的是如何利用ASP(Active ...

    jsp生成静态页面资料.rar

    - **Freemarker** 或 **Velocity**:这些模板引擎可以替代JSP,生成静态HTML,它们通常比JSP更轻量级,性能更好。 - **Apache Tiles**:一种视图聚合框架,用于构建复杂的页面结构,有助于生成静态页面。 6. **...

    生成静态页面 freemarker模板

    在生成静态页面的场景中,Struts2可以作为数据和模板之间的桥梁,将处理后的业务数据传递给Freemarker,由Freemarker生成静态HTML。 **生成静态页面的流程** 1. **配置Struts2**: 首先,我们需要在Struts2的配置...

    httpclient,freemarker的静态化分页

    当获取到`httpclient`请求的数据后,这些数据会被填充到模板中,生成最终的静态HTML页面。`freemarker`的语法简洁,支持条件判断、循环、变量操作等,使得动态数据的渲染变得非常灵活。 实现静态化分页的步骤通常...

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

    7. **部署和维护**:生成的静态HTML页面可以部署到Web服务器上,供用户访问。由于它们不涉及服务器端的动态处理,所以性能往往更好。同时,由于数据和显示分离,更新内容时只需修改数据模型,无需触碰HTML,降低了...

    JAVA集成Freemarker生成静态html过程解析

    Java集成Freemarker生成静态HTML的过程是一个常见的技术实践,它能提高网站的加载速度和用户体验。下面我们将详细探讨这个过程。 首先,集成Freemarker需要引入相应的依赖。在Spring Boot项目中,我们可以添加`...

    freemarker-ide-0.9.14.zip,测试可用版本

    它是一种基于Java的开源模板语言,能够将数据模型与HTML模板结合,从而生成最终的静态页面。在Java Web应用中,Freemarker可以作为视图层的技术,与Spring MVC、Struts2等框架配合使用。 标题中的"freemarker-ide-...

    hudson.freemarker_ide_0.9.14

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

    java生成静态页面——Freemarker实例教程.docx

    #### 三、Freemarker生成静态页面的工作原理 Freemarker生成静态页面的基本步骤如下: 1. **准备模板** 创建一个模板文件,该文件通常是一个包含HTML标记的普通文件,其中可能包含Freemarker的特殊标签或表达式...

Global site tag (gtag.js) - Google Analytics