jar包地址:http://www.freemarker.org/freemarkerdownload.html
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。
FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。
它不仅可以用作表现层的实现技术,而且还可以用于生成XML,JSP或Java 等。
Demo:
一、在eclipse中创建FreeMarker模板
${user.userName}
${user.userPassword}
${user.userPassword}
并将其命名为“user.ftl”
二、在eclipse中创建FreeMarker数据模型
以User为例:
1 package test.client;
2
3 /**
4 * 用户实体类
5 *
6 * @author Ying-er
7 * @time 2010-2-6下午04:05:25
8 * @version 1.0
9 */
10 public class User {
11 private String userName;
12
13 private String userPassword;
14
15 public String getUserName() {
16 return userName;
17 }
18
19 public void setUserName(String userName) {
20 this.userName = userName;
21 }
22
23 public String getUserPassword() {
24 return userPassword;
25 }
26
27 public void setUserPassword(String userPassword) {
28 this.userPassword = userPassword;
29 }
30
31 }
32
2
3 /**
4 * 用户实体类
5 *
6 * @author Ying-er
7 * @time 2010-2-6下午04:05:25
8 * @version 1.0
9 */
10 public class User {
11 private String userName;
12
13 private String userPassword;
14
15 public String getUserName() {
16 return userName;
17 }
18
19 public void setUserName(String userName) {
20 this.userName = userName;
21 }
22
23 public String getUserPassword() {
24 return userPassword;
25 }
26
27 public void setUserPassword(String userPassword) {
28 this.userPassword = userPassword;
29 }
30
31 }
32
注意:注意:FreeMarker数据模型不是文本文件,而是树状结构的。
三、在eclipse中填充FreeMarker数据模型
将创建好的User对象以key-value的形式封装到Map中
片段代码:
User user = new User();
user.setUserName("测试");
user.setUserPassword("123");
Map<String, Object> root = new HashMap<String, Object>();
root.put("user", user);
user.setUserName("测试");
user.setUserPassword("123");
Map<String, Object> root = new HashMap<String, Object>();
root.put("user", user);
四、创建FreeMarker的模板引擎,解析模板
1.创建和配置Configuration对象,Configuration对象实例负责管理FreeMarker模板的路径加载及模板的创建和缓存。
通常应用程序的生命周期中只会创建一个Configuration实例。
2.获取模板实例,即通过Configuration实例获取Template实例,调用getTemplate()方法。
3.合并数据模型和模板
该步骤完整代码:
1 package test.freemarker.util;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.OutputStreamWriter;
6 import java.io.Writer;
7 import java.util.Map;
8
9 import freemarker.template.Configuration;
10 import freemarker.template.DefaultObjectWrapper;
11 import freemarker.template.Template;
12 import freemarker.template.TemplateException;
13
14 /**
15 * freemarker 模板工具
16 *
17 * @author Ying-er
18 * @time 2010-2-6下午04:07:27
19 * @version 1.0
20 */
21 public class FreeMarkertUtil {
22 /**
23 *
24 * @param templateName
25 * 模板文件名称
26 * @param templateEncoding
27 * 模板文件的编码方式
28 * @param root
29 * 数据模型根对象
30 */
31 public static void analysisTemplate(String templateName,
32 String templateEncoding, Map<?, ?> root) {
33 try {
34 /**
35 * 创建Configuration对象
36 */
37 Configuration config = new Configuration();
38 /**
39 * 指定模板路径
40 */
41 File file = new File("templates");
42 /**
43 * 设置要解析的模板所在的目录,并加载模板文件
44 */
45 config.setDirectoryForTemplateLoading(file);
46 /**
47 * 设置包装器,并将对象包装为数据模型
48 */
49 config.setObjectWrapper(new DefaultObjectWrapper());
50
51 /**
52 * 获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致
53 */
54 Template template = config.getTemplate(templateName,
55 templateEncoding);
56 /**
57 * 合并数据模型与模板
58 */
59 Writer out = new OutputStreamWriter(System.out);
60 template.process(root, out);
61 out.flush();
62 out.close();
63 } catch (IOException e) {
64 e.printStackTrace();
65 } catch (TemplateException e) {
66 e.printStackTrace();
67 }
68
69 }
70 }
71
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.OutputStreamWriter;
6 import java.io.Writer;
7 import java.util.Map;
8
9 import freemarker.template.Configuration;
10 import freemarker.template.DefaultObjectWrapper;
11 import freemarker.template.Template;
12 import freemarker.template.TemplateException;
13
14 /**
15 * freemarker 模板工具
16 *
17 * @author Ying-er
18 * @time 2010-2-6下午04:07:27
19 * @version 1.0
20 */
21 public class FreeMarkertUtil {
22 /**
23 *
24 * @param templateName
25 * 模板文件名称
26 * @param templateEncoding
27 * 模板文件的编码方式
28 * @param root
29 * 数据模型根对象
30 */
31 public static void analysisTemplate(String templateName,
32 String templateEncoding, Map<?, ?> root) {
33 try {
34 /**
35 * 创建Configuration对象
36 */
37 Configuration config = new Configuration();
38 /**
39 * 指定模板路径
40 */
41 File file = new File("templates");
42 /**
43 * 设置要解析的模板所在的目录,并加载模板文件
44 */
45 config.setDirectoryForTemplateLoading(file);
46 /**
47 * 设置包装器,并将对象包装为数据模型
48 */
49 config.setObjectWrapper(new DefaultObjectWrapper());
50
51 /**
52 * 获取模板,并设置编码方式,这个编码必须要与页面中的编码格式一致
53 */
54 Template template = config.getTemplate(templateName,
55 templateEncoding);
56 /**
57 * 合并数据模型与模板
58 */
59 Writer out = new OutputStreamWriter(System.out);
60 template.process(root, out);
61 out.flush();
62 out.close();
63 } catch (IOException e) {
64 e.printStackTrace();
65 } catch (TemplateException e) {
66 e.printStackTrace();
67 }
68
69 }
70 }
71
摘自:http://www.blogjava.net/crazycoding/archive/2010/02/06/312192.html
相关推荐
Freemarker简介及标签详解大全 Freemarker简介及标签使用说明
Freemarker简介及标签详解大全.pdf
学习Freemarker简介及标签详解大全.pdf
FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写,有兴趣的可以了解一下
jsp、freemarker、velocity简介和对比。---如果你已经开发Java Web应用程序一段时间,那么对于 JVM 的 PermGen 问题可能并不陌生。由于 FreeMarker 模板不编译成类,它们不占用 PermGen 空间,并不需要一个新的类...
freemarker 中文文档,freemarker入门简介,含几个小实例
5.1.简介 参考:http://freemarker.foofun.cn/ FreeMarker 是一款 模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本 (HTML 网页,电子邮件,配置文件,源代码等)的通用工具。 它不是
搭建项demo(maven项目[freemarker+easyui+spring+springmvc+mybatic]) ,包括各种功能,技术简介,要自己运行才行 有搭建的整个项目,1,有发短信验证码功能,paypal支付功能,登陆验证功能,excel导入导出功能 ...
新手学习freemarker 快速上手。
什么是FreeMarker? ................................................................................................. 7 我们应该阅读什么内容? .............................................................
Freemarker入门简介,资料,蛮有用的。
FreeMarker页面制作规范 页面规范的重要性 宏的简介 项目中常用宏的使用方法 页面元素规范 FreeMarker常用技巧
1概念 2指令 if, else, elseif switch, case, default, break list, break include Import compress escape, noescape assign global setting macro, nested, return t, lt, rt ...hashes内置方法
• 采用hibernate3+struts2+spring2+freemarker主流技术架构 • 懂html就能建站,提供最便利、合理的使用方式 • 强大、灵活的标签,用户自定义显示内容和显示方式 • 在设计上自身预先做了搜索引擎优化,增强对...
java版飞机大战源码 ...一、FreeMarker简介 FreeMarker是一款模板引擎,即一种基于模板和要改变的数据,并用来生成输出文本(HTML网页,电子邮件,配置文件,源代码等)的通用工具。它不是面向最终用户的,而是
项目简介: MiniDAO是一个基于SpringJDBC和FreeMarker技术的轻量级Java持久层框架。它以简洁的设计理念实现了SQL的分离和逻辑标签功能,与Mybatis的操作体验相媲美,同时能够无缝集成至Spring Boot项目。 技术构成...
1.1 简介 ............................................................................................................ 9 1.2 模板 + 数据模型 = 输出 ........................................................
1.1 简介 ............................................................................................................ 9 1.2 模板 + 数据模型 = 输出 ........................................................
前台模板引擎:Freemarker 简介 JEESNS是一款基于JAVA企业级平台研发的社交管理系统,依托企业级JAVA的高效、安全、稳定等优势,开创国内JAVA版开源SNS先河,JEESNS可以用来搭建门户、论坛、社区、微博、问答、知识...