FreeMarker 是一个用Java编写的模板引擎,主要用来生成HTML Web页面,特别是基于MVC模式的应用程序。虽然FreeMarker具有一些编程的能力,但不像PHP,通常由Java程序准备要显示的数据,由 FreeMarker模板生成页面。 FreeMarker可以作为Web应用框架一个组件,但它与容器无关,在非Web应用程序环境也能工作的很好。 FreeMarker适合作为MVC的视图组件,还能在模板中使用JSP标记库。
-
-
import java.io.BufferedWriter;
-
import java.io.File;
-
import java.io.FileOutputStream;
-
import java.io.IOException;
-
import java.io.OutputStreamWriter;
-
import java.io.Writer;
-
import java.util.Map;
-
-
import freemarker.template.Configuration;
-
import freemarker.template.Template;
-
import freemarker.template.TemplateException;
-
-
-
-
-
-
-
public class GeneratorHtml {
-
private Configuration config = null;
-
-
-
-
-
-
-
private boolean creatDirs(String path) {
-
File aFile = new File(path);
-
if (!aFile.exists()) {
-
return aFile.mkdirs();
-
} else {
-
return true;
- }
- }
-
-
-
-
-
-
-
-
-
-
@SuppressWarnings("unchecked")
-
public void geneHtmlFile(String templateFileName, String templateFilePath, Map contextMap,
- String htmlFilePath, String htmlFileName) {
-
-
try {
-
Template t = this.getFreeMarkerCFG(templateFilePath).getTemplate(templateFileName);
-
-
this.creatDirs(htmlFilePath);
-
File afile = new File(htmlFilePath + "/" + htmlFileName);
-
Writer out = new BufferedWriter(new OutputStreamWriter(
-
new FileOutputStream(afile)));
- t.process(contextMap, out);
- out.flush();
- out.close();
-
} catch (TemplateException e) {
- System.out.print(e.getMessage());
-
} catch (IOException e) {
- System.out.print(e.getMessage());
-
} catch (Exception e) {
- System.out.print(e.getMessage());
- }
- }
-
-
-
-
-
-
-
-
-
-
-
private Configuration getFreeMarkerCFG(String templateFilePath)
-
throws Exception {
-
if (null == this.config) {
-
-
this.config = new Configuration();
-
try {
-
this.config.setDirectoryForTemplateLoading(new File(
- templateFilePath));
-
} catch (Exception ex) {
-
throw ex;
- }
- }
-
return this.config;
- }
-
- }
分享到:
相关推荐
在本项目"springboot整合freemarker生成静态html的demo.zip"中,我们将探讨如何将SpringBoot框架与FreeMarker模板引擎结合,以实现动态数据驱动的静态HTML页面生成。FreeMarker是一个强大的、开源的模板语言,它允许...
以下是一个简单的Java代码示例,展示了如何使用FreeMarker生成静态页面: 1. 导入所需的FreeMarker库和IO相关的类。 2. 创建一个名为`FreeMarkerUtil`的公共类。 3. 定义一个静态方法`analysisTemplate`,接收模板...
本示例项目是在Eclipse环境中创建的一个工程,目的是演示如何使用Freemarker来生成静态HTML页面。 在了解这个项目之前,首先需要知道什么是Freemarker。Freemarker是一个开源的Java库,它允许开发者通过定义模板(....
这可能是一个动态HTML的示例,或者是一个自定义的类,用于处理Freemarker生成静态页的过程。具体功能需要查看源代码才能明确。 通过以上步骤,你可以使用Freemarker轻松地将动态数据转化为静态网页。这种方式在网站...
本示例将详细介绍如何使用Freemarker生成静态HTML页面。 1. **Freemarker基本概念** - **模板**: Freemarker的核心是模板,它定义了输出文件的结构和样式,其中包含了一系列指令和变量。 - **数据模型**: 数据...
通过这个过程,开发者能够利用FreeMarker将动态数据高效地转化为静态HTML页面,简化Web开发流程,使得非程序员也能参与到内容的生成中来。在实际项目中,FreeMarker经常与Spring MVC等框架结合使用,实现更复杂的...
在本项目中,“struts2+freemarker 生成静态页面”意味着利用这两个工具将动态网页转化为静态HTML页面,以提高网站性能和用户体验。 1. **Struts2框架**:Struts2提供了全面的MVC架构支持,包括动作(Action)类、...
以上就是Struts2整合Freemarker生成静态页面所涉及的主要知识点。通过熟练掌握这些,开发者可以有效地构建动态、高性能的Web应用。在提供的链接中,可能有更具体的示例和教程,帮助你深入理解和实践这一技术。
本篇文章将深入探讨Freemarker的工作原理、配置、语法以及在生成静态页面中的应用。 一、Freemarker的工作原理 Freemarker是一个基于Java的模板语言,它与后端服务器通过模板引擎进行交互。当用户请求页面时,...
在IT行业中,静态生成是一种网页制作技术,它将动态生成的内容转换为静态HTML页面,以提高网站的加载速度和搜索引擎优化(SEO)。本文件“静态生成\ASP生成静态程序原理.rar”显然关注的是如何利用ASP(Active ...
- **Freemarker** 或 **Velocity**:这些模板引擎可以替代JSP,生成静态HTML,它们通常比JSP更轻量级,性能更好。 - **Apache Tiles**:一种视图聚合框架,用于构建复杂的页面结构,有助于生成静态页面。 6. **...
在生成静态页面的场景中,Struts2可以作为数据和模板之间的桥梁,将处理后的业务数据传递给Freemarker,由Freemarker生成静态HTML。 **生成静态页面的流程** 1. **配置Struts2**: 首先,我们需要在Struts2的配置...
当获取到`httpclient`请求的数据后,这些数据会被填充到模板中,生成最终的静态HTML页面。`freemarker`的语法简洁,支持条件判断、循环、变量操作等,使得动态数据的渲染变得非常灵活。 实现静态化分页的步骤通常...
7. **部署和维护**:生成的静态HTML页面可以部署到Web服务器上,供用户访问。由于它们不涉及服务器端的动态处理,所以性能往往更好。同时,由于数据和显示分离,更新内容时只需修改数据模型,无需触碰HTML,降低了...
Java集成Freemarker生成静态HTML的过程是一个常见的技术实践,它能提高网站的加载速度和用户体验。下面我们将详细探讨这个过程。 首先,集成Freemarker需要引入相应的依赖。在Spring Boot项目中,我们可以添加`...
它是一种基于Java的开源模板语言,能够将数据模型与HTML模板结合,从而生成最终的静态页面。在Java Web应用中,Freemarker可以作为视图层的技术,与Spring MVC、Struts2等框架配合使用。 标题中的"freemarker-ide-...
模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度。 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于...
#### 三、Freemarker生成静态页面的工作原理 Freemarker生成静态页面的基本步骤如下: 1. **准备模板** 创建一个模板文件,该文件通常是一个包含HTML标记的普通文件,其中可能包含Freemarker的特殊标签或表达式...