> ## 在java程序中

- 导入freemarker的相关jar包

```

org.freemarker

freemarker

```

1. 首先要创建一个`jtl`模板文件

2. 创建Confuguration类对象,并指定一个版本号,通常通过Confifuretion类里的常量获取。

`Configuration configuration = new Configuration(Configuration.getVersion());`

3. 通过confuguration设置`jtl`文件所在的文件夹地址

`configuration.setDirectoryForTemplateLoading(new File(ftlFilePath));`

4. confuguration设置默认的字符集

` configuration.setDefaultEncoding("UTF-8");`

5. 通过confuguration获取一个模板,传入`jtl`文件名称

`Template template = configuration.getTemplate("fileName.ftl");`

6. 写入数据通常是map,也可是pojo对象

`Map map = new HashMap();`

7. 创建一个Writer对象

`Writer writer = new FileWriter("outputFile");`

8. 通过模板对象process方法处理数据

` template.process(map, writer);`

9. 关闭流

`writer.close();`

* [ ] * 在开发中可以配合InputStreamReader (ByteArrayInputStream)和 OutputStreamWriter(ByteArrayOutputStream)使用。如邮件发送页面。

> ## `jtl`语句

- 获取map数据

`${key}` key为map的键值

- 获取pojo数据

`${key.field}` key为pojo对象存入map的键值,field为存入pojo的属性

- 循环列表

```

// key为list存入map的键值,item为自己定义的遍历对象名称

${item.key|filed} // 无论list存入的是pojo对象还是map对象,都是通过`.`的方式获取值,'.'后面可是键值或者属性

${item_index} // 可以获取当前遍历对象的序号(序号从0开始)

#list>

```

- 判断 `if` `else`语句

```

// 再标签中写判断语句时不需要写${} 如 value!=2

为true时执行到这里

否则执行这里

#if>

```

- 时间显示

`${key?date}` // key为传入时间对象的键值,跟date表示只显示日期

`${key?time}` // key为传入时间对象的键值,跟time表示只显示时间,不显示日期

`${key?datetime}` // key为传入时间对象的键值,跟datetime表示显示日期时间

`${key?string(pattern)}` // key为传入时间对象的键值,表示自己定义时间模板如`${key?string("yyyy年MM月dd日 HH:mm:ss")}`

- 空值处理

`${key!} `//当获取的值为null时,在其后加入'!'表示默认值为`""`

`${key!defaultValue} ` //当获取的值为null时,可以定义默认的值。如 `${key!"123"} `

` # if> ` // 也可使用`if`语句定义空值

- include

`` // jtlName为包含文件名称,如``

java解析jtl_2.7 jtl的使用相关推荐

  1. IDEA Java解析GeoJson.json文件

    IDEA Java解析GeoJson.json文件 一.遇到的问题 1. 无法导入成功 2. org.geotools.StyleFactory is not an ImageIO SPI class ...

  2. easyexcel生成excel_阿里JAVA解析Excel工具easyexcel

    java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有 ...

  3. java图书分析echarts_Echarts后台Java解析

    Echarts 后台 Java 解析 一.引入 Echarts 的封装类 1 .基于 maven 架构的 com.github.abel533 ECharts 2.2.7 com.google.cod ...

  4. java 解析 csv 文件

    文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码   import java.io.BufferedReader; import java.io.FileInpu ...

  5. 用正则表达式和java解析csv文件

    用正则表达式和java解析csv文件 作者:弹着钢琴设计  来源:博客园  发布时间:2009-06-15 18:31  阅读:337 次  原文链接   [收藏]   在解析csv文件之前,先来看看 ...

  6. 详解Java解析XML的四种方法

    http://developer.51cto.com  2009-03-31 13:12  cnlw1985  javaeye  我要评论(8) XML现在已经成为一种通用的数据交换格式,平台的无关性 ...

  7. java解析xml的三种方法

    java解析XML的三种方法 1.SAX事件解析 package com.wzh.sax;import org.xml.sax.Attributes; import org.xml.sax.SAXEx ...

  8. Java解析HTML

    使用Java解析HTML很简单,使用jsoup.jar来解析,使用起来和jquery差不多 下面是两个例子 1.解析web页面 1 import org.jsoup.Connection; 2 imp ...

  9. xml教程之java解析xml文档

    1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...

最新文章

  1. 时问轴php,php-发布到时间轴-过去的日期
  2. Linux虚拟机安装及与宿主机相互通信
  3. python 时间序列预测_使用Python进行动手时间序列预测
  4. 什么是系统架构?系统架构的特点分析!
  5. js函数传参,如何在JavaScript函数中不传递先前参数的情况下传递第n个可选参数?
  6. Unity单例模式+例子
  7. VS2010 SP1安装卡在VS10Sp1-KB983509处的解决(转)
  8. mysql创建临时表慢_mysql临时表产生的执行效率问题改进(转)
  9. PHOTOSHOP 小技巧
  10. luogu 5561 [Celeste-B]Mirror Magic 后缀数组+RMQ+multiset
  11. nginx防止CDN大量回源
  12. 修改IP的cmd命令
  13. k近邻算法python_k-近邻算法的Python实现
  14. visual studio 全局搜索 找不到文字
  15. 【中危】Sweet32: TLS 64位分组密码生日攻击(CVE-2016-2183)
  16. HTML iframe 标签
  17. idea中启动vue项目
  18. 增删改查--基本思路
  19. 阅文集团面试题回答不完善的总结
  20. 金蝶K3 11.0-K3HR系统在Win2003环境的设置指南

热门文章

  1. 网上的一些日语教学视频合集
  2. C语言计算单位阶跃函数
  3. 浮点数表示及运算规则
  4. 小学五年级计算机课评课,小学语文五年级优秀评课稿
  5. 设计模式学习(十六) 中介者模式 Mediator
  6. 数据库按照汉字拼音首字母排序
  7. Excel按照数字顺序批量创建工作表的操作
  8. 二极管及其基本电路总结
  9. Taro+NutUI+vue3+TypeScript - 图片上传
  10. labview关于移位寄存器的使用