`
543089122
  • 浏览: 153812 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

freeMarker入门

    博客分类:
  • java
阅读更多
freeMarker是一个 JAVA开源模版引擎

下面以创建一个静态的HTML页面为例作为入门:
首先需要去下载freeMarker的包,地址http://www.freemarker.org/index.html
该地址含有中文的pdf帮助文档
package freemarker;

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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;

public class BuildHtml {
	public static void main(String[] args) {
		BuildHtml buildHtml = new BuildHtml();
//		System.out.println(buildHtml);
		String path = "D:\\eclipse\\myTest\\src\\freemarker\\";
		Map rootMap = new HashMap();
		rootMap.put("name", "aaaaaaaaaa");
		User2 u2 = new User2("11111","222222222互联网的");
		rootMap.put("u2",u2);
		
		List<User2> list = new ArrayList<User2>();
		for (int i = 0; i < 4; i++) {
			list.add(new User2("33333_"+i,"44444_"+i));
		}
		rootMap.put("list",list);
		rootMap.put("zs1","张三1_zs1");
		rootMap.put("zs2","张三1_zs2");
		buildHtml.create(path, "test1.ft", rootMap , path+"1.html");
	}

	/**
	 * 创建静态HTML页面
	 * @param filePath 模版路径
	 * @param fileName  模版文件名
	 * @param rootMap  参数
	 * @param html   生成的静态文件路径(包含文件名称)
	 */
	public void create(String filePath, String fileName, Map rootMap,
			String html) {
		Configuration cfg = new Configuration();
		Template t = null;
		Writer out = null;
		try {
			cfg.setDirectoryForTemplateLoading(new File(filePath));
			t = cfg.getTemplate(fileName, "gbk");

			out = new BufferedWriter(new OutputStreamWriter(
					new FileOutputStream(html), "gbk"));
			t.process(rootMap, out);
		} catch (IOException e1) {
			e1.printStackTrace();
		} catch (TemplateException e) {
			e.printStackTrace();
		} finally {
			if (out != null) {
				try {
					out.flush();
					out.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
	}
}
 

javaBean
package freemarker;
public class User2 {
	String id;
	String name;

	public User2(String id, String name) {
		super();
		this.id = id;
		this.name = name;
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}

freeMarker模版文件
<html>
  <head>
    <title>Welcome!</title>
  </head>
  <body>
  	${name}<br/>
  	<#--访问对象的属性-->
  	${u2.name}<br/>
  	
  	<br>
  	<#--条件指令-->
  	<#if u2.name=='222222222'>
  		freemark if<br>
  	</#if>
  	<table border="1">
  		<tr>
	  		<td>id</td>
	  		<td>name</td>
	  	</tr>
	  	<#--list指令进行迭代-->
	  	<#list list as u>
	  		<tr>
	  			<td>${u.id}</td>
	  			<td>${u.name}</td>
	  		</tr>
	  	</#list>
  	</table>
  	<br>
  	<#--不存在的变量,用默认值代替-->
  	<h1>${user100!"Anonymous"}</h1>
  	<#--通过if指令里面用??询问变量是否存在-->
  	<#if user100??>welcome ${user100}</#if>
  	
  	<#--下面的macro定义了一个名为greet的宏,也就是一个代码片段,-->
  	<#macro greet>
  		<font size="+2">早晨好!</font><br>
  	</#macro>
  	<#--使用宏-->
  	<@greet/>
  	<@greet/>
  	<#--带参数的宏-->
  	<#macro greet2 person>
  		<font size="+2">Hello ${person}/>
  	</#macro>
  	<@greet2 person="张三1"/> and <@greet2 person="张三2"/>
  	<#--用数据替换张三1和张三2-->
  	<@greet2 person=zs1/> and <@greet2 person=zs2/>
  </body>
</html>
0
5
分享到:
评论

相关推荐

    FreeMarker入门之一:say hello world

    在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...

    Servlet + Freemarker 入门练习

    总结来说,"Servlet + Freemarker 入门练习"涉及以下几个关键知识点: 1. **Servlet**:Java 服务器端编程,处理 HTTP 请求,实现业务逻辑。 2. **Freemarker**:模板引擎,分离视图和逻辑,生成动态 HTML。 3. **...

    freemarker入门共9页.pdf.zip

    通过学习这9页的Freemarker入门教程,你将能够理解和应用基本的Freemarker语法,进一步深入学习,你可以掌握更高级的特性,成为熟练的Freemarker使用者,从而更好地服务于Web开发工作。在实践中不断探索,你会发现...

    一个意义深刻 FreeMarker 入门例子之HelloWord

    本示例“一个意义深刻的FreeMarker入门例子之HelloWord”旨在帮助初学者理解并掌握FreeMarker的基本用法。 在Java Web开发中,FreeMarker与后端控制器如Servlet或Spring MVC中的Controller协同工作,允许开发者将...

    JFinal+Maven+FreeMarker入门实例

    在"JFinal+Maven+FreeMarker入门实例"中,我们将看到如何配置和使用这些工具。首先,我们需要在项目根目录下创建一个`pom.xml`文件,这是Maven项目的配置文件。在这里,我们需要列出所有依赖项,包括JFinal和...

    FreeMarker入门Demo

    FreeMarker与Struts2整合的入门Demo 直接布署在Servlet容器运行

    Freemarker入门学习资料

    通过深入学习"Freemarker入门学习资料"中的内容,你可以掌握Freemarker的基本使用、语法特性、与Spring的整合方法,以及最佳实践,从而有效地进行Web应用的视图层开发。记得实践中不断探索和优化,提升模板设计和...

    学习FreeMarker入门文档

    ### FreeMarker入门知识详解 #### 一、FreeMarker概述 FreeMarker是一款强大的模板引擎,它以Java语言编写,主要用于生成动态HTML网页,特别是在MVC(Model-View-Controller)架构中,作为视图组件,负责将模型...

    FreeMarker入门指南(详细指南见附件)

    这篇《FreeMarker入门指南》将深入介绍其基本概念、语法以及在实际项目中的应用。 一、FreeMarker简介 FreeMarker是一个基于模板的Java库,用于生成文本输出。它的主要工作原理是将模板(template)与数据模型...

    freemarker入门

    ### Freemarker 入门详解 #### 一、Freemarker 概述 Freemarker 是一款功能强大的模板引擎,主要用于生成动态的 HTML 页面以及其他格式的文档。它将模板设计与后端逻辑分离,使得前端设计师可以专注于页面布局与...

    freemarker入门文档及例子

    本入门文档结合实例,旨在帮助初学者快速理解并掌握Freemarker的基本用法。 一、Freemarker基本概念 1. 模板:Freemarker模板是纯文本文件,其中包含静态文本和控制结构,如条件语句和循环。它们用来生成最终输出。...

    freemarker入门Demo

    以下是对`freemarker入门Demo`相关知识点的详细说明: 1. **严格的MVC分离**: Freemarker模板引擎不支持编写Java代码,这意味着开发者可以在模板文件中专注于展示逻辑,而将数据处理和业务逻辑保留在控制器和服务...

    freemarker入门demo

    本教程将通过一个基础的"freemarker入门demo",帮助你理解Freemarker的工作原理和基本用法。 首先,让我们了解一下Freemarker模板语言(FTL)。FTL是Freemarker Template Language的缩写,它是一种声明式的标记语言...

    Freemarker入门实例

    在上述的Freemarker入门实例中,我们看到一个简单的`product.ftl`模板文件,其中包含HTML结构以及`${...}`包围的Freemarker表达式。这些表达式在运行时会被对应的数据模型中的值替换。例如,`${user}`和`${...

    springboot集成freemarker入门案例

    这是一个基础入门案例,旨在帮助初学者快速理解这两个技术的结合。 Spring Boot是一个由Pivotal团队开发的Java框架,它简化了Spring应用的初始搭建以及开发过程。它内置了各种默认配置,使得开发者可以快速地创建...

    FreeMarker入门指南API文档(中文版)

    本指南主要针对FreeMarker 2.3.23版本,提供详细的API文档和入门教程。 在开始之前,你需要了解FreeMarker的基本概念:模板(Template)和数据模型(Data Model)。模板是包含静态文本和变量的文件,变量会被数据...

    freemarker入门实例(解决乱码eclipse/java/编码方式UTF-8)

    本实例将引导你入门Freemarker,解决在Eclipse环境下使用Java编译时可能出现的乱码问题,并确保使用UTF-8编码方式进行处理。 **1. Freemarker简介** Freemarker是一个基于模板的开源Java库,它与Spring MVC、Struts...

    freemarker入门代码

    - **模板(Template)**:Freemarker的工作基于模板,模板是纯文本文件,其中包含静态文本和Freemarker指令。这些指令用于插入由应用程序提供的数据。 - **数据模型(Data Model)**:数据模型是应用程序传递给...

    FreeMarker入门手册

    本入门手册将帮助你了解FreeMarker的基本概念、语法以及如何在实际项目中运用。 1. **基本概念** - **模板语言**:FreeMarker是模板驱动的,它不直接处理数据,而是通过模板和数据模型结合来生成最终输出。 - **...

Global site tag (gtag.js) - Google Analytics