摘要: 在Java模板引擎 FreeMarker介绍中,我们已经对freemarker有了一定的了解,这一节是FreeMarker入门教程。下载freemarker,定义模板文件,输出到控制台和文件中
在Java模板引擎 FreeMarker介绍中,我们已经对freemarker有了一定的了解,这一节是FreeMarker入门教程。
下载freemarker
http://freemarker.sourceforge.net/freemarkerdownload.html
项目文件:freemarker-2.3.19.tar.gz
中文文档:FreeMarker_Manual_zh_CN.pdf
解压后把freemarker.jar加到classpath中即可完成环境的配置
定义模板文件
我们创建两个模板文件,一个是纯文本的模板文件,另一个是HTML格式的模板文件,主要是为了说明,freemarker的模板文件可以是任何格式的
01.ftl
02.ftl
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>${username}</h1>
</body>
</html>
创建freemarker工具类
这个类,主要是获取模板定义文件,并根据输入的数据输出到控制台和文件中
package com.naxsu.freemarker;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerUtil {
/**
* 获取模板
* @param name
* @return
*/
public Template getTemplate(String name) {
try {
//通过Freemaker的Configuration读取相应的ftl
Configuration cfg = new Configuration();
//设定去哪里读取相应的ftl模板文件
cfg.setClassForTemplateLoading(this.getClass(),"/ftl");
//在模板文件目录中找到名称为name的文件
Template temp = cfg.getTemplate(name);
return temp;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 输出到控制台
* @param name 模板文件名
* @param root
*/
public void print(String name,Map<String,Object> root) {
try {
//通过Template可以将模板文件输出到相应的流
Template temp = this.getTemplate(name);
temp.process(root, new PrintWriter(System.out));
} catch (TemplateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 输出到文件
* @param name
* @param root
* @param outFile
*/
public void fprint(String name,Map<String,
Object> root,String outFile) {
FileWriter out = null;
try {
//通过一个文件输出流,就可以写到相应的文件中
out = new FileWriter(
new File("E:\\freemarker\\ftl\\"+outFile));
Template temp = this.getTemplate(name);
temp.process(root, out);
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
} finally {
try {
if(out!=null) out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
模拟数据,进行测试
public class TestFreemarker {
FreemarkerUtil fu;
Map<String,Object> root = null;
@Before
public void setUp() {
fu = new FreemarkerUtil();
root = new HashMap<String,Object>();
}
@Test
public void test01() {
//1、创建数据模型
Map<String,Object> root = new HashMap<String,Object>();
//2、为数据模型添加值
root.put("username", "张三");
//3、将数据模型和模板组合的数据输出到控制台
fu.print("01.ftl", root);
fu.fprint("02.ftl", root, "01.html");
}
}
好了,helloword到此为止,简单入门就是如此简单
本文链接:FreeMarker入门教程,本文由huangyineng原创,转载请注明出处
分享到:
相关推荐
1. **基础概念**:Freemarker的工作原理,模板语言的基础元素,如变量、表达式、控制结构(if/else、foreach)以及注释等。 2. **数据模型**:理解如何将Java对象绑定到模板,包括基本类型、集合、Map等数据结构的...
### FreeMarker实例教程知识点详解 ...以上知识点覆盖了FreeMarker的主要方面,通过本教程的学习,读者不仅能够掌握FreeMarker的基本使用方法,还能够深入了解其高级特性,为日后解决复杂的Web开发问题打下坚实的基础。
本教程将深入讲解Freemarker的核心概念、语法和实际应用,帮助你全面掌握这个模板语言。 1. **Freemarker简介** - Freemarker是一个开源的、轻量级的模板引擎,其核心功能是将数据模型与HTML模板结合,生成最终的...
Freemarker是一个强大的模板引擎,常用于Java web开发中,作为动态内容生成工具。...通过本教程的学习,你不仅可以掌握Freemarker的基础用法,还能了解其在实际项目中的应用,为你的编程生涯添加一个实用的工具。
通过学习这9页的Freemarker入门教程,你将能够理解和应用基本的Freemarker语法,进一步深入学习,你可以掌握更高级的特性,成为熟练的Freemarker使用者,从而更好地服务于Web开发工作。在实践中不断探索,你会发现...
### FreeMarker 中文教程知识点概览 #### 一、FreeMarker 概述 - **定义与功能**:FreeMarker 是一款强大的、灵活的、可扩展的模板引擎,它支持多种编程语言,主要用于生成动态HTML页面以及其他格式的文档,如XML...
通过这些资料,你可以全面了解并掌握Freemarker的使用,从基础语法到高级特性,从而在实际项目中灵活运用。无论是开发Web应用,还是构建复杂的邮件系统,Freemarker都能提供强大而简洁的解决方案。学习并熟练运用...
FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所...
在这个“FreeMarker入门之一:say hello world”中,我们将探讨如何使用FreeMarker来创建一个简单的“Hello, World!”程序,了解其基本语法和工作原理。 1. **FreeMarker简介** FreeMarker是一个开源项目,由...
### FreeMarker教程精要 **FreeMarker** 是一种强大的模板引擎,主要用于生成动态网页或用于任何文本输出场景。本文档将深入探讨FreeMarker的核心组成部分及其使用方法,包括文本、注释、插值以及FTL(FreeMarker ...
1. **FreeMarker基础** - **定义**:FreeMarker是一个Java模板语言,它将数据模型与视图分离,模板设计者只需关注页面布局,而开发者则专注于业务逻辑。 - **工作原理**:FreeMarker读取由Java应用程序提供的数据...
1. **模板语言基础**:Freemarker模板由静态文本和动态控制结构组成,如`<#if>`、`<#foreach>`等。动态部分是由${...}或#{...}包裹的表达式,用于插入数据模型中的值。`<#assign>`用于定义变量,`<#function>`则允许...
什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................
一、Freemarker基础 1. 模板语言:Freemarker是一种声明式语言,它不包含任何控制结构(如循环、条件语句),而是通过特定的语法来表达数据与模板的结合方式。 2. 变量与数据模型:在Freemarker中,变量是由`${}`...
1. **模板语言基础** FreeMarker的模板语言是一种声明式的编程方式,它允许开发者通过简单的标记语法来控制输出。这些标记不包含执行逻辑,而是与数据模型结合以生成最终输出。例如,`<#if>`、`<#foreach>`用于条件...
3. **教程手册**:《Freemarker教程手册中文版》是学习Freemarker的重要参考资料,涵盖了从入门到进阶的全面内容。 通过这个教程,你可以系统地了解和掌握Freemarker的使用方法,提升你的Web开发技能。在实践中不断...
### Freemarker语法规则教程 #### 一、字符串格式化输出 在Freemarker中,字符串格式化是一项非常实用的功能,它可以将数据按照特定的格式进行输出,方便开发者控制最终的展示效果。以下是一些基本的例子: - **...
一、Freemarker基础 1. 模板语法:Freemarker的模板语言由简单的文本和特殊的指令组成。例如,`${expression}`用于插入变量值,`<#if condition>`和`<#else>`用于条件判断,`<#list items as item>`用于循环遍历。 ...