zoukankan      html  css  js  c++  java
  • 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 "模板名称">
  • 相关阅读:
    extend()和append()区别
    extend()和append()区别
    extend()和append()区别
    extend()和append()区别
    Ethtool工具源码剖析
    [数据库基础]——索引
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
  • 原文地址:https://www.cnblogs.com/linkworld/p/7953493.html
Copyright © 2011-2022 走看看