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 是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯 Java 编写。FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序。虽然 FreeMarker ...
1. **Freemarker简介** Freemarker是一个基于模板的开源模板语言,它与Java代码分离,使得开发者可以专注于业务逻辑,而设计师则可以专注于页面设计。它不依赖于任何特定的Web框架,可以在各种Java应用中使用。 2....
FreeMarker的核心理念是将展示逻辑与业务逻辑分离,让Java程序负责处理数据,而模板则负责生成最终的页面内容。 FreeMarker不依赖于特定的Web容器,它可以独立工作,也可以与各种Web框架如Struts集成。它的模板语言...
总的来说,Freemarker是一种强大的模板引擎,提供了丰富的语言结构和指令来生成动态内容,它强调与应用程序逻辑的分离,便于页面设计人员和程序员协作,同时具备良好的扩展性和灵活性。通过Eclipse的插件,如JBoss ...
一、Freemarker简介 Freemarker是一个开源的、基于Java的模板引擎,它能够将设计人员的模板与程序逻辑分离,让开发者可以专注于业务处理,而设计师则可以自由地设计页面布局。Freemarker的模板语言(FTL)非常简洁,...
**一、FreeMarker简介** FreeMarker是一个基于模板的Java模板引擎,它能够将数据模型渲染成HTML或者其他格式的文档。FreeMarker与JSP不同,它不依赖于Servlet API,因此更轻量级,适合用于SpringBoot这样的微服务...
1. **Freemarker简介** - Freemarker是一个开源的、轻量级的模板引擎,其核心功能是将数据模型与HTML模板结合,生成最终的网页。 - 它不依赖于任何特定的Web框架,可以灵活地应用于各种项目中。 2. **基础语法** ...
### 一、FreeMarker简介 FreeMarker是一个开放源代码的模板引擎,它能够将数据模型与表现层分离,使开发人员能够更加专注于业务逻辑的实现,而让前端工程师或设计师专注于界面的设计。这种模式有助于提高开发效率,...
#### 一、FreeMarker简介 **FreeMarker**是一款功能强大的模板引擎,主要用于生成文本输出,如HTML页面、电子邮件、配置文件等。它被广泛应用于Web开发领域,能够帮助开发者轻松地将数据模型与表现层分离,从而提高...
#### 一、FreeMarker简介 FreeMarker是一个非常流行的开源模板引擎,主要用于根据模板和数据生成文本输出。它是由Java编写而成,因此可以在任何支持Java运行环境的地方运行。FreeMarker的主要用途是生成HTML网页,...
#### 一、FreeMarker简介 FreeMarker是一个强大的模板引擎,主要用于Web应用程序中生成动态HTML页面以及其他格式的文档。它支持多种编程语言如Java、Python等,并且可以在不同的环境中运行。FreeMarker的一个显著...
1. **Freemarker简介**: - Freemarker 是一个基于模板的语言,主要用于生成HTML或其他格式的文本输出。它的核心是模板文件,开发者可以使用Freemarker的语法来动态地生成内容。这些语法包括变量引用、控制结构(如...
### 二、Freemarker简介 Freemarker是一个用Java编写的模板引擎,它可以从HTML页面中分离业务逻辑与显示逻辑,使开发人员可以更专注于业务逻辑的实现,而将显示逻辑留给设计师处理。Freemarker支持多种数据类型,...
#### 一、Freemarker简介 Freemarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。这些模板几乎可以用来生成任何格式的输出,如HTML、XML、Java源代码等。Freemarker的核心功能是将数据模型与表现层...
#### 一、FreeMarker简介 - **定位与功能**:FreeMarker是一款基于模板的通用工具,旨在帮助开发者利用模板生成各类文本输出,包括但不限于HTML网页、XML文档、RTF文件及Java源代码等。 - **适用场景**:虽然最初...
一、Freemarker简介 Freemarker是一个开源的Java库,它处理模板,生成基于这些模板的文本输出。这些模板可以用于生成任何类型的文本,但最常见的是HTML网页。Freemarker的核心理念是将设计和业务逻辑分开,让设计师...
### FreeMarker简介 FreeMarker是一个开源的、基于模板的Java库,它将数据模型与HTML、XML或其他文本模板结合,生成动态内容。它的主要优势在于将业务逻辑与视图层分离,让开发者可以专注于内容呈现,而不用关心如何...
**Freemarker简介** Freemarker是一个强大的模板引擎,它支持动态语言,常用于生成HTML页面或者其他文本文件。在Java领域,Freemarker被广泛应用于邮件模板、动态报表生成以及代码生成等场景。它通过定义模板文件,...
1. **Freemarker简介** Freemarker是一个基于模板的视图技术,它与业务逻辑分离,允许开发者使用HTML样式的模板来生成输出。它的主要优点是模板语言简单易懂,不会引入过多的编程元素,有利于设计人员和开发人员的...