FreeMarker使用
程序员文章站
2022-07-14 09:52:42
...
FreeMarker使用
demo1
pom
<dependencies>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.20</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
</dependencies>
codeutils\codeutils\templates
template01.ftl
<#-- assign指令 : 再ftl模板中定义数据存入到root节点下
<#assign name="zhangsan">
-->
<#--
${name}
欢迎您:${username}
-->
<#-- 获取数据 ${根节点下的数据....属性} -->
<#-- if指令
<#if flag=1>
传入数据=1
<#elseif flag=2>
传入数据=2
<#else>
传入数据=其他
</#if>
-->
<#-- list指令 : 循环迭代
数据名称 as 别名
<#list weeks as abc>
${abc_index} = ${abc}
</#list>
-->
<#--模板包含 include
<#include "template02.ftl" >
-->
${username?lower_case}
template02.ftl
第二个模板:${username}
FreeMarkerTest01
package cn.itcast.freemarker.test;
import freemarker.cache.FileTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 第一个FreeMarker程序(数据+模板=文件输出)
* 1.操作步骤
*/
public class FreeMarkerTest01 {
@Test
public void test01() throws Exception {
//1.创建FreeMarker的配置类
Configuration cfg = new Configuration();
//2.指定模板加载器:将模板存入缓存中
//文件路径加载器
FileTemplateLoader ftl = new FileTemplateLoader(new File("templates"));
cfg.setTemplateLoader(ftl);
//3.获取模板
Template template = cfg.getTemplate("template01.ftl");
//4.构造数据模型
Map<String,Object> dataModel = new HashMap<>();
//
//user对象
dataModel.put("username","ZHangsan");
dataModel.put("flag",3);
List<String> list = new ArrayList<>();
list.add("星期一");
list.add("星期二");
list.add("星期三");
list.add("星期四");
dataModel.put("weeks",list);
//5.文件输出
/**
* 处理模型
* 参数一:数据模型
* 参数二:writer(FileWriter(文件输出),printWriter(控制台输出))
*/
//template.process(dataModel,new FileWriter(new File("C:\\Users\\ThinkPad\\Desktop\\ihrm\\day12\\test\\a.txt")));
template.process(dataModel,new PrintWriter(System.out));
}
}
FreeMarkerTest02.java
package cn.itcast.freemarker.test;
import freemarker.cache.StringTemplateLoader;
import freemarker.template.Configuration;
import freemarker.template.Template;
import org.junit.Test;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;
/**
* 测试字符串模板
*
*
*/
public class FreeMarkerTest02 {
/**
* com.${p1}.${p1}.${p1}.User
*
*/
@Test
public void test() throws Exception {
//1.创建配置对象
Configuration cfg = new Configuration();
//2.指定加载器
cfg.setTemplateLoader(new StringTemplateLoader());
//3.创建字符串模板
// i.字符串
String templateString = "欢迎您:${username}";
// ii.通过字符串创建模板
Template template = new Template("name1",new StringReader(templateString),cfg);
//4.构造数据
Map<String,Object> dataModel = new HashMap<>();
dataModel.put("username","张三");
//5.处理模板
template.process(dataModel,new PrintWriter(System.out));
}
}
FreeMarker手册及工具代码:
链接:https://pan.baidu.com/s/1Jesxi7jqWO_3xsqrp6K1Uw&shfl=sharepset
提取码:1wcx