博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
FreeMarker 的使用方法
阅读量:6370 次
发布时间:2019-06-23

本文共 1709 字,大约阅读时间需要 5 分钟。

1.FreeMarker 概述

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

1222878-20171202100543011-1498960287.png

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对象中的学号,姓名,年龄,住址

1222878-20171202100616808-1824168084.png

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

1222878-20171202100629292-1748343547.png

2.1.4 获取循环下标
<#list studentList as student>    ${student_index}
2.1.5 判断
<#if student_index % 2 ==0><#else>
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
2.1.7 Include 标签
  • <#include "模板名称">

转载于:https://www.cnblogs.com/linkworld/p/7953493.html

你可能感兴趣的文章
TCP是否适用与广域网环境?
查看>>
PHP语言开发Paypal支付demo的具体实现
查看>>
Java Executor 框架学习总结
查看>>
那些容易被忽视的JavaScript细节总结
查看>>
IBM首席执行官提出人工智能部署三大基本原则
查看>>
航空公司为何要超售机票?背后的利益竟然如此之大!
查看>>
横评:五款免费开源的语音识别工具
查看>>
大数据时代对国际非传统安全的新挑战
查看>>
MYSQL 创建函数出错的解决方案
查看>>
从APM角度上看:NoSQL和关系数据库并无不同
查看>>
中国光伏产业或将迎来新一轮的爆发式增长!
查看>>
都成为了中国女婿,小扎为什么还迈不过入华这道坎
查看>>
在非洲做生意是什么体验?《战狼2》只讲了冰山一角
查看>>
香港科技大学杨强教授:深度学习如何才能更靠谱?
查看>>
物联网标识引发新商业变革
查看>>
三星处理器将集成CDMA 魅族终于有芯用了
查看>>
大数据、云计算与广州安防
查看>>
阿里云内存数据库Memcache升级 提供256G缓存
查看>>
从物理环境迁移到云环境的几个关键步骤
查看>>
成为准DRAM的小幻想? Supermicro推出增内存的双槽服务器
查看>>