Freemarker01
2024-09-04 09:03:31
1 如何使用freemarker
1.1 导包
freemarker-2.3.19.jar
1.2 创建一个ftl文件作为模板
1.3 创建一个方法来将ftl模板和数据组合起来
2 利用maven实现freemarker编程
2.1 创建一个maven项目
2.2 利用maven导入freemarker包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>cn.xiangxu</groupId>
<artifactId>warriorTest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.19</version>
</dependency>
</dependencies>
</project>
pom.xml
2.3 创建用于组装freemarker模板和数据的方法
2.3.1 创建freemarker配置实例并指定ftl模板文件的位置
2.3.2 创建数据模型并向数据模型中添加数据
2.3.3 利用freemarker对象加载模板文件
2.3.4 显示生成的数据
2.3.5 关闭输出流
public static void test01() throws Exception {
Configuration cfg = new Configuration(); // 创建freemarker配置实例
cfg.setDirectoryForTemplateLoading(new File("template")); // 指定配置文件的路径 // 包含ftl文件的文件夹在项目根目录下时的写法(使用相对路径)
// cfg.setDirectoryForTemplateLoading(new File("D://template")); // 使用绝对路径
// cfg.setClassForTemplateLoading(this.getClass(), "/template");//在resource目录下的写法类路径(这种方法在静态方法中不可用)
// 1、创建freemarker配置实例并指定ftl模板文件的位置 Map root = new HashMap(); // 创建数据模型
root.put("name", "Zeus"); // 向数据模型中添加数据
// 2、创建数据模型并向数据模型中添加数据 Template tl = cfg.getTemplate("a.ftl");
// 3、利用freemarker对象加载模板文件 Writer out = new OutputStreamWriter(System.out);// 输出控制 // 输出流到控制台(输出流到文件、输出流到socket怎么处理)
tl.process(root, out); // 将模板和数据组合的结果输出指定的输出位置
// 4、显示生成的数据 out.flush();
out.close();
// 5、关闭输出流
}
2.4 编写ftl模板文件
Hello ${name}
Welcom to the city of dazu
2.5 在main方法中调用
package cn.xiangxu.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.Template; public class TestFreemarker { public static void main(String[] args) throws Exception {
test01();
} public static void test01() throws Exception {
Configuration cfg = new Configuration(); // 创建freemarker配置实例
cfg.setDirectoryForTemplateLoading(new File("template")); // 指定配置文件的路径 // 包含ftl文件的文件夹在项目根目录下时的写法(使用相对路径)
// cfg.setDirectoryForTemplateLoading(new File("D://template")); // 使用绝对路径
// cfg.setClassForTemplateLoading(this.getClass(), "/template");//在resource目录下的写法类路径(这种方法在静态方法中不可用)
// 1、创建freemarker配置实例并指定ftl模板文件的位置 Map root = new HashMap(); // 创建数据模型
root.put("name", "Zeus"); // 向数据模型中添加数据
// 2、创建数据模型并向数据模型中添加数据 Template tl = cfg.getTemplate("a.ftl");
// 3、利用freemarker对象加载模板文件 Writer out = new OutputStreamWriter(System.out);// 输出控制 // 输出流到控制台(输出流到文件、输出流到socket怎么处理)
tl.process(root, out); // 将模板和数据组合的结果输出指定的输出位置
// 4、显示生成的数据 out.flush();
out.close();
// 5、关闭输出流
}
}
2.6 控制台效果
2.7 项目文件目录
2.8 待优化点
freemarker的相关指令语法详解
怎么讲组合后的内容存储到一个文件中
利用freemarker实现sql语句的动态拼接
待更新......
2017年8月29日22:08:54
最新文章
- JokeClient-Swift 仿写学习
- 第一个Mac shell 小脚本
- 利用JSONP实现跨域请求
- CodeForces 37E Trial for Chief
- php 过时的sql操作库(学习使用)
- bzoj2618: [Cqoi2006]凸多边形
- java数据结构和算法------快速排序
- UVa 1609 (博弈) Foul Play
- 正则转nfa:bug出现。
- Speeding up AngularJS apps with simple optimizations
- Java API —— TreeMap类
- zend studio 函数不提醒 小黄图标 小黄标
- C#。3 循环
- 洛谷 P1972 [SDOI2009]HH的项链【莫队算法学习】
- java基础复习+大数运算
- Python标准模块--concurrent.futures(进程池,线程池)
- Fix_And_Hold 使用及存在问题
- Python 爬虫实例(13) 下载 m3u8 格式视频
- 20155314 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(macOS + IDEA)
- mysql修改表操作
热门文章
- 《程序员代码面试指南》第二章 链表问题 将单链表每K个节点之间逆序
- 【Flask】模板继承
- EntityFramework 学习 一 Eager Loading
- LINQ 学习路程 -- 查询操作 Select, SelectMany
- matlab中的科学记数法变成小数形式
- window.onload 添加多个函数绑定
- GW知识点
- jmeter--轻量级接口自动化测试框架
- Python调试时__name__ ==&#39;__main__&#39;的妙用
- Gym - 100851J: Jump(交互+构造+(大胆瞎搞)))