一.简介
FreeMarker 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由FreeMarker 生成页面,通过模板显示准备的数据
FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件。FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet;FreeMarker 同样可以应用于非Web应用程序环境,FreeMarker 更适合作为 Model2 框架(如 Struts)的视图组件,你也可以在模板中使用 JSP标记库。另外,FreeMarker是免费的。
2.应用场景
比较适合运用在访问量大(或页面数据量大),但是数据很少与后台进行交互(即对实时性要求不是很高的)的页面,比如商品网站上的商品详情页等。
3.前期准备
要想使用freemarker,首先必须要有freemarker的jar包,这个互联网上随处可以下载,这边就不多说
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.9</version>
</dependency>
4.入门demo
(1)创建一个testFreemarker类
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.Template;
/**
* @作者:JackHisen(GWD)
* @项目名:freemarker
* @时间:2017-7-25 下午2:39:45
* @version 1.0
*/
public class testFreemarker {
public static void main(String[] args) throws Exception {
String dir="H:\\Java-EE Workspace\\freemarker\\src\\com\\gwd\\freemarker";
Configuration conf = new Configuration();
//加载模板文件(模板的路径)
conf.setDirectoryForTemplateLoading(new File(dir));
// 加载模板
Template template = conf.getTemplate("/freemarker-demo.ftl");
// 定义数据
Map root = new HashMap();
root.put("world", "Hello World");
// 定义输出
Writer out = new FileWriter(dir + "/freemarker.html");
template.process(root, out);
System.out.println("转换成功");
out.flush();
out.close();
}
}
项目目录如下,其中freemarker.html文件是运行main函数后自动生成的,freemarker-demo.ftl为模板
(2)freemarker模板中写入内容
(3)生成的html页面:
5.其他数据类型
1.实体bean
(1)创建Perso