Fork me on GitHub

FreeMarker 的使用方法

1.FreeMarker 概述

  • FreeMarker 是一个用Java语言编写的模板引擎,使用模板来生成文本输出;主要用于做静态页面或页面展示;

2.FreeMarker 使用

// 导入jar包: freemarker.jar
// 测试类
public class TestFreeMarker{

    @Test
    public void testFreeMarker() throws Exception{
        // 1.创建一个模板文件(/Users/用户名/Documents/ftl)
        // 2.创建一个Configuration对象
        Configuration configuration = new Configuration(Configuration.getVersion());
        // 3.设置模板所在的路径
        configuration.setDirectoryForTemplateLoading(new File("/Users/用户名/Documents/ftl"));
        // 4.设置模板的字符集,一般为utf-8
        configuration.setDefaultEncoding("utf-8");
        // 5.使用Configuration对象,加载一个模板文件,需要指定模板文件的文件名
        Template template = configuration.getTemplate("hello.ftl");
        // 6.创建一个数据集,可以是pojo,也可以是map,推荐使用map
        Map data = new HashMap<>();
        data.put("hello","hello FreeMarker");
        // 7.创建一个Writer对象,指定输出文件的路径及文件名
        Writer out = new FileWriter("/Users/用户名/Documents/taotao/html/hello.txt");
        // 8.使用模板对象的process方法输出文件
        template.process(data,out);
        // 9.关闭资源
        out.close();
    }
}

// 模板文件: /Users/用户名/Documents/ftl/hello.ftl
${hello}

2.1 模板语法

2.1.1 访问map中的key
  • ${key}
2.1.2 访问pojo中的属性
  • ${key.property}
  • 例如:Student对象中的学号,姓名,年龄,住址

2.1.3 获取集合中的数据
// 循环使用格式:
<#list 要循环的数据 as 循环后的数据>
</#list>

2.1.4 获取循环下标
<#list studentList as student>
    ${student_index}
</#list>
2.1.5 判断
<#if student_index % 2 ==0>
<tr bgcolor="red">
<#else>
<tr bgcolor="blue">
</#if>

</tr>
2.1.6 日期类型格式化
// 如果传来的是一个Date数据类型, ${date} 直接取值会报错
${date?date} 2017-12-1
${date?time} 9:00:00
${date?datetime} 2017-12-1 9:00:00
${date?string("yyyy/MM/dd HH:mm:ss")}  自定义日期格式
2.1.7 Null 值的处理
${aaa!"默认值"} 或 ${aaa!} 代表空字符串

<#if val??>
    val 是有值的...
<#else>
    val 值为null
</#if>
2.1.7 Include 标签
  • <#include "模板名称">
posted @ 2017-12-02 10:07  小a的软件思考  阅读(2171)  评论(0编辑  收藏  举报