> ## 在java程序中
- 導入freemarker的相關jar包
```
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
</dependency>
```
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的屬性
- 循環列表
```
<#list key as item> // key為list存入map的鍵值,item為自己定義的遍歷對象名稱
${item.key|filed} // 無論list存入的是pojo對象還是map對象,都是通過`.`的方式獲取值,'.'后面可是鍵值或者屬性
${item_index} // 可以獲取當前遍歷對象的序號(序號從0開始)
</#list>
```
- 判斷 `if` `else`語句
```
<#if true> // 再標簽中寫判斷語句時不需要寫${} 如 value!=2
為true時執行到這里
<#else>
否則執行這里
</#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 key??> </# if> ` // 也可使用`if`語句定義空值
- include
`<#include jtlName>` // jtlName為包含文件名稱,如`<#include "hello.jtl">`
- 第一章 java SE
- 1.1數據類型
- 1.2 流程控制語句
- 1.3 方法
- 1.4 面向對象三特性
- 1.5 對象數組與集合
- 1.6 數組和集合操作工具類
- 1.7 可變參數
- 1.8 String
- 1.9 StringBuilder
- 1.10 final&&finally&&finalize
- 1.11 抽象類與接口
- 1.12 基本數據類型的包裝類
- 1.13 泛型
- 1.14 內部類
- 1.15 throw & throws & try catch
- 1.16 線程
- 1.17 BeanUtils
- 1.18 java反射
- 1.19 序列化和反序列化
- 1.20 IO輸入輸出流
- 1.21 File
- 1.22 RandomAccessFile
- 1.23 第三方工具CommonsIO
- 1.24 java網絡傳輸
- 第二章 java EE
- 2.1 maven的配置
- 2.2 Cookie
- 2.3 EL表達式 JSTL
- 2.4 驗證相關
- 2.4.1 驗證碼
- 2.5 防重復提交
- 2.6 activeMq的使用
- 2.7 jtl的使用
- 2.8 Upload上傳文件
- 第三章 Spring相關
- 3.1 IOC/DI
- bean的生命周期
- bean的配置
- 3.2 Spring Aop
- 3.3 Spring Jdbc
- 3.4 事物相關
- 事物
- 事物的使用
- 3.5 MBG使用
- 第四章 解決問題方法
- 4.1 List轉換為Map
- 4.2 結果返回類
- 4.3 HSSF的使用
- 第五章 排序
- 5.1 冒泡排序
- 5.2 選擇排序
- 5.3 快速排序