第一步:新建maven工程,这个工程java或web工程都可以
导入pom坐标
<dependencies>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.23</version>
</dependency>
</dependencies>
第二步:创建模板文件
模板文件中有四种元素:
文本
:直接输出的部分注释
:即<#–…-->格式不会输出插值
(Interpolation):即${..}部
分,将使用数据模型中的部分替代输出,类似于MyBatis中的占位符FTL指令
:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出,正因为这些指令,所以静态文件才变换多端,加入了逻辑判断等
Freemarker的模板文件后缀
可以任意,一般建议为ftl
。
在D盘创建ftl目录,在ftl目录中创建名称为test.ftl的模板文件,内容如下:
<html>
<head>
<meta charset="utf-8">
<title>Freemarker入门</title>
</head>
<body>
<#--我只是一个注释,我不会有任何输出 -->
${name}你好,${message}
</body>
</html>
第三步:生成静态文件
使用步骤:
第一步:创建一个 Configuration 对象,直接 new 一个对象。构造方法的参数就是 freemarker的版本号。
第二步:设置模板文件所在的路径。
第三步:设置模板文件使用的字符集。一般就是 utf-8。
第四步:加载一个模板,创建一个模板对象。
第五步:创建一个模板使用的数据集,可以是 pojo 也可以是 map。一般是 Map。
第六步:创建一个 Writer 对象,一般创建 FileWriter 对象,指定生成的文件名。
第七步:调用模板对象的 process 方法输出文件。
第八步:关闭流。
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.File;
import java.io.FileWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class FreemarkerTest {
public static void main(String[] args) throws Exception{
//创建freemarker的配置对象
Configuration configuration = new Configuration(Configuration.getVersion());
//设置模板文件所在目录
configuration.setDirectoryForTemplateLoading(new File("d:\\ftl"));
//设置字符集
configuration.setDefaultEncoding("utf-8");
//加载模板文件
Template template = configuration.getTemplate("test.ftl");
//准备模板文件中所需要的数据,通常是通过Map进行构造
Map map = new HashMap();
map.put("name","itcast");
map.put("message","hello freemarker!!");
//准备输出流对象,用于输出静态文件,文件输出的位置
Writer writer = new FileWriter("d:\\ftl\\test.html");
//输出
template.process(map,writer);
//关闭流
writer.close();
}
}
- 上面的入门案例中Configuration配置对象是自己创建,
- 字符集和模板文件所在目录也是在Java代码中指定的。
- 在项目中应用时可以将Configuration对象的创建交由Spring框架来完成,并通过依赖注入方式将字符集和模板所在目录注入进去。
在上面的输出目录下回生成一个test.html文件,文件内容: