FreeMaker

一 常用指令
1. assign: 自定義變量
2. if else :流程判斷指令
3. list: 變量sequence
4. marco: 宏指令(自定義方法)
5. import: 引入命名空間
6. include: 嵌入文件指令

二 指令詳解
【1. assign 指令】: 自定義變量
1.1 自定義變量:
<#assign hw = "hello,world"/>
1.2 調(diào)用:用$ 調(diào)用
hw = ${hw}

【2. if 指令】: 判斷語句, if 相關(guān)的指令中不需要用 $ 號(hào),直接可以從map 中獲取元素
2.1 if else 組合:
<#if status == 0>
status is 0
<#else>
status is not 0
</#if>
2.2 if elseif else 組合:
<#if status ==0 >
status = 0
<#elseif status ==1>
status = 1
<#else>
status != 0 && status !=1
</#if>

【3. list 指令】:list可以遍歷sequence 類型的數(shù)據(jù), 即 數(shù)組, List, Set
1.1 foreach:
<#list citys as city>
${city_index} --> ${city}
</#list>
3.2 獲取遍歷索引: 變量名_index
<#list names as name>
${name_index} --> ${name}
</#list>

【4. macro 宏指令】, 類似于自定義方法
1. 定義宏指令(定義方法)
<#macro sayHello name1 name2>
hello, ${name1} and ${name2}
</#macro>
2. 調(diào)用宏指令(調(diào)用方法)
<@sayHello name1="zhangsan" name2="lisi"/>

3. nested 指令: 代替調(diào)用宏指令時(shí)標(biāo)簽對(duì)之間包裹的內(nèi)容
    <#macro hw>
        hello,<#nested>
    </#macro>
    <@hw>zhangsan,lisi,wangwu,zhaoliu</@hw>

【5. import 指令】: 引入命名空間:
1. 引入命名空間:<#import "templateUtil.ftl" as util />
2. 調(diào)用響應(yīng)方法:<@util.printEmp employee/>
3. 調(diào)用變量:${util.fileName}
修改變量:<#assign fileName = "command.ftl" in util />
${util.fileName}

【6. include 】嵌入文件:
1. 執(zhí)行步驟:
1. 合并文件: 將被嵌入的文件的內(nèi)容全部導(dǎo)入當(dāng)前 文件
2. 解析: 然后用freemarker 語法解析嵌入的文件片段
2. 示例:以下是文件 hello.ftl 的文本內(nèi)容:
<#include "include.txt" />

三 測(cè)試結(jié)果:
[html] view plain copy
二 指令詳解

【1. assign 指令】: 自定義變量
1.1 自定義變量:
<#assign hw = "hello,world"/>
1.2 調(diào)用:用$ 調(diào)用
hw = ${hw}

【2. if 指令】: 判斷語句, if 相關(guān)的指令中不需要用 $ 號(hào),直接可以從map 中獲取元素
2.1 if else 組合:
<#if status == 0>
status is 0
<#else>
status is not 0
</#if>
2.2 if elseif else 組合:
<#if status ==0 >
status = 0
<#elseif status ==1>
status = 1
<#else>
status != 0 && status !=1
</#if>

【3. list 指令】:list可以遍歷sequence 類型的數(shù)據(jù), 即 數(shù)組, List, Set
1.1 foreach:
<#list citys as city>
${city_index} --> ${city}
</#list>
3.2 獲取遍歷索引: 變量名_index
<#list names as name>
${name_index} --> ${name}
</#list>

【4. macro 宏指令】, 類似于自定義方法
1. 定義宏指令(定義方法)
<#macro sayHello name1 name2>
hello, ${name1} and ${name2}
</#macro>
2. 調(diào)用宏指令(調(diào)用方法)
<@sayHello name1="zhangsan" name2="lisi"/>

3. nested 指令: 代替調(diào)用宏指令時(shí)標(biāo)簽對(duì)之間包裹的內(nèi)容  
    <#macro hw>  
        hello,<#nested>  
    </#macro>  
    <@hw>zhangsan,lisi,wangwu,zhaoliu</@hw>  

【5. import 指令】: 引入命名空間:
1. 引入命名空間:<#import "templateUtil.ftl" as util />
2. 調(diào)用響應(yīng)方法:<@util.printEmp employee/>
3. 調(diào)用變量:${util.fileName}
修改變量:<#assign fileName = "command.ftl" in util />
${util.fileName}

【6. include 】嵌入文件:
1. 執(zhí)行步驟:
1. 合并文件: 將被嵌入的文件的內(nèi)容全部導(dǎo)入當(dāng)前 文件
2. 解析: 然后用freemarker 語法解析嵌入的文件片段
2. 示例:以下是文件 hello.ftl 的文本內(nèi)容:
<#include "include.txt" />

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • FreeMarker的模板文件并不比HTML頁面復(fù)雜多少,FreeMarker模板文件主要由如下4個(gè)部分組成: 1...
    年輕小伙程序員閱讀 3,161評(píng)論 0 5
  • 最近使用freemaker通過ftl模板生成word,這種方案較其他方式相對(duì)簡便。 普通字符替換模板導(dǎo)出 1.使用...
    sony93閱讀 1,782評(píng)論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,544評(píng)論 19 139
  • 是春來燕歸呀閱讀 309評(píng)論 0 3
  • 文 | 子白 誰會(huì)成為 AI 和大數(shù)據(jù)時(shí)代的第一開發(fā)語言?這本已是一個(gè)不需要爭論的問題。如果說三年前, Matla...
    羅義的夏天閱讀 14,050評(píng)論 0 4

友情鏈接更多精彩內(nèi)容