FreeMarker 是一款模板引擎:一种基于模板的、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。它是为 Java 程序员提供的一个开发包或者说是类库。 它不是面向最终用户,而是为程序员提供的可以嵌入他们开发产品的一款应用程序。
FreeMarker 不是 Web 应用框架。它是 Web 应用框架中的一个适用的组件,但是FreeMarker 引擎本身并不知道 HTTP 协议或 Servlet。它仅仅来生成文本。即便这样,它也非常适用于非 Web 应用环境的开发。要注意的是,我们使用 FreeMarker 作为视图层组件,是为给如 Struts 这样的 Model 2 框架提供现成的解决方案。
【例】入门例子
FreemarkerExample
package freemarker;
import java.io.File;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class FreemarkerExample {
/**
* @param args
* @throws IOException
* @throws TemplateException
*/
public static void main(String[] args) throws IOException, TemplateException {
/* 在整个应用的生命周期中,这个工作你应该只做一次。 */
/* 创建和调整配置。 */
Configuration cfg = new Configuration();
cfg.setDirectoryForTemplateLoading(new File("src/freemarker"));
cfg.setObjectWrapper(new DefaultObjectWrapper());
/* 在整个应用的生命周期中,这个工作你可以执行多次 */
/* 获取或创建模板*/
Template temp = cfg.getTemplate("test.ftl");
/* 创建数据模型 */
Map<String ,Object> root = new HashMap<String ,Object>();
root.put("user", "Big Joe");
Map<String ,Object> latest = new HashMap<String ,Object>();
root.put("latestProduct", latest);
latest.put("url", "products/greenmouse.html");
latest.put("name", "green mouse");
/* 将模板和数据模型合并 */
Writer out = new OutputStreamWriter(System.out);
//输出到文件
//Writer out = new OutputStreamWriter(new FileOutputStream("D:/temp/helloword.html"),"GBK");
temp.process(root, out);
out.flush();
}
}
test.ftl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<h1>欢迎 ${user}!</h1>
<p>Our latest product:
<a href="${latestProduct.url}">${latestProduct.name}</a>!
</body>
</html>
数据模型的创建是通过已经存在的程序计算得到的。至于模板开发者,数据模型像是树状结构(比如硬盘上的文
件夹和文件),正如本例中的数据模型,就可以如下形式来描述:
(root)
|
+- user = "Big Joe"
|
+- latestProduct
|
+- url = "products/greenmouse.html"
|
+- name = "green mouse"
比较之前你在模板中看到的${user}和${latestProduct.name}。作为一种比喻:数据模型就像计算机文件系统上的内容:根 root 和 latestProduct 对应目录(文件夹),user,url和 name 对应文件。url和 name 在 latestProduct 目录中,所以 latestProduct.name 就像是说latestProduct 目录的 name 一样。但是我所说的,这仅仅是个比喻,这里并没有真实的文件和目录。
概括地讲,模板和数据模型是 FreeMarker 所需,并用来生成输出内容的(比如之前展示的 HTML) :模板+数据模型=输出
- 大小: 19.7 KB
分享到:
相关推荐
freemarker基础实现代码,帮助你更好地freemarker入门
适合新手快速了解入门的资料,里面涉及到的都是基础知识
分享目标 FreeMarker介绍 开发指南-5分钟入门 开发进阶 实例应用讲解 常用FreeMarker资源
什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................
一、快速入门..............................................................4 1.1、创建配置实例..............................................................................4 1.2、创建数据模型(Data ...
Struts2和FreeMarker结合,表现层使用FTL标签,并在FTL页面中使用Struts2标签,供入门的朋友用,属最最基础的东东. 方家批评!
〖课程体系〗JavaWeb相关课程:- HTML网页基础教程 - VUE框架基础 - 网站开发入门教程 - 网站开发进阶教程 - JDBC数据库教程 - FreeMarker_MVC原理教程- Spring系列课程、MyBatis、Redis等系列课程
FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................
FreeMarker 手册 .......................................................................................................... 1 用于 FreeMarker 2.3.18 .......................................................
快速入门 (1)模板 + 数据模型 = 输出 (2)数据模型 (3)模板 2、数据模型 (1)基础 (2)Scalar变量 (3)hashes 、sequences和集合 (4)方法 (5)宏和变换器 (6)节点 3...
一、快速入门..............................................................4 1.1、创建配置实例..............................................................................4 1.2、创建数据模型(Data ...
1.基础表单标签 40 2.单选按钮和复选框: 41 3.三种方式实现下拉列表 41 4.二级联动 42 5.其它表单标签 44 6.其它常用标签的使用(代码参名为“补充”的文件夹下的tag.jsp) 45 七、国际化 47 1.action级别下的国际...
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。它不仅可以用作表现层的实现技术,...本教程很适合入门或者有点基础的!
内容概要:该资源是Spring全家桶视频课程的第三部分Spring Boot的源码,其对于Spring Boot的最常用的第一个小程序、JavaConfig和常见注解、启动改变、热部署、Springboot整合Thymeleaf/freemarker/JSP、异常处理、...
一、课程简介 这是『Java学习指南系列』的第19篇教程 ,是Java开发的高级课程,介绍JavaFX的...〖网站开发系列〗:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。
即便你是编程小白,没有任何编程基础也可以学习本课程。 知识点 1,Java 2,springboot 3,freemarker 4,bootstrap4.3 5,Javaweb 6,微信小程序 同时会借助当下最热门的微信小程序来作为我们的前端展示。所以课程...
非常适合新手入门的springboot项目,存有一定的bug,前端集成了freemarker,建议有一定的基础后,下载本资源进行后续开发
第一章: 以hello word为切入点详细讲解返回json数据,整合jsp/freemarker模板。 第二章:servlet、过滤器、监听器、拦截器配置及使用场景 第三章:讲解日志、静态资源、启动加载数据处理方式 第四章:数据库配置,...
第2章 Struts 2下的HelloWorld,第3章 Struts 2基础,第4章 深入Struts 2,第5章 Struts 2的类型转换,第6章 文件的上传和下载.,第7章 Struts 2的拦截器,第8章 Struts 2的输入校验,9.2 Struts 2的国际化入门,...
一、课程简介 这是『Java学习指南系列』的第18篇教程 ,是Java开发的高级课程,介绍反射...〖网站开发〗系列:包含网页基础、网站入门、数据库、网站中级、FreeMarker、网站高级、项目应用、MyBatis、Redis等课程。