Freemarker |
FreeMarker 是一个用 Java 语言编写的模板引擎,它基于模板来生成输出各种文件。它不仅可以用作表现层的实现技术,而且还可以用于生成 XML,html 或 Java 等。
创建freemarker-test模块,引入依赖
freemarker-test/pom.xml:
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
创建一个简单的创建模板文件freemarker-test/src/main/resources/ftl/hello.ftl:
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>FreeMarker示例</title>
<meta name="Copyright" content="All Rights Reserved"/>
</head>
<body>
<#--我只是一个注释,我不会有任何输出 -->
<h1>${name},你好。${message}!</h1>
</body>
</html>
编码步骤
第一步:创建一个 Configuration 对象,直接 new 一个对象,构造方法的参数就是 freemarker的版本号。
第二步:设置模板文件加载的基础路径。
第三步:设置模板文件使用的字符集。(一般就是 UTF-8)
第四步:加载一个模板文件产生模板对象。
第五步:创建一个模板使用的数据模型,可以是 pojo 也可以是 map,一般是 Map。
第六步:调用模板对象的 process 方法填充模版,输出文件。
在freemarker-test/src/main/test/cn.itcast.freemarker包下,编写测试类FreeMarkerTest.java:
@Test
public void test() throws Exception{
/** 创建配置信息对象 */
Configuration configuration = new
Configuration(Configuration.VERSION_2_3_26);
/** 设置模板文件加载的基础路径 */
configuration.setClassForTemplateLoading(FreeMarker01.class, "/ftl");
/** 设置默认编码 */
configuration.setDefaultEncoding("UTF-8");
/** 加载模板文件,产生模板对象 */
Template template = configuration.getTemplate("hello.ftl");
/** 定义数据模型 */
Map<String,Object> dataModel = new HashMap<>();
dataModel.put("name", "小刘");
dataModel.put("message", "欢迎来到freemarker!");
/** 填充模板,输出文件 */
template.process(dataModel,
new FileWriter("C:\\Users\\Administrator\\Desktop\\html\\hello.html"));
}