freemarker指令介紹
FreeMarker 的常用指令
1、if指令
分支控制語句
語法格式如下
<#if condition>
....
<#elseif condition2>
...
<#elseif condition3>
...
<#else>
...
</#if>
2、switch、case、default、break指令
<#switch value>
<#case refValue>
...
<#break>
<#case refValue>
...
<#break>
<#default>
...
</#switch>
雖然FreeMarker提供了switch指令,但它並不推薦使用switch指令來控制也輸出,而是推薦使用FreeMarker的if..elseif..else 指令來替代它。
3、list、break指令
list指令時一個典型的叠代輸出指令,用於叠代輸出數據模型中的集合。list指令的語法格式如下:
<#list sequence as item>
...
</#list>
除此之外,叠代集合對象時,還包括兩個特殊的循環變量:
a、item_index:當前變量的索引值。
b、item_has_next:是否存在下一個對象
也可以使用<#break>指令跳出叠代
<#list ["星期一","星期二","星期三","星期四","星期五"] as x>
${x_index +1}.${x} <#if x_has_next>,</#if>
<#if x = "星期四"><#break></#if>
</#list>
4、include 指令
include指令的作用類似於JSP的包含指令,用於包含指定頁,include指令的語法格式如下
<#include filename [options]
在上面的語法格式中,兩個參數的解釋如下
a、filename:該參數指定被包含的模板文件
b、options:該參數可以省略,指定包含時的選項,包含encoding和parse兩個選項,encoding指定包含頁面時所使用的解碼集,而parse指定被
包含是否作為FTL文件來解析。如果省略了parse選項值,則該選項值默認是true
5、 import指令
該指令用於導入FreeMarker模板中的所有變量,並將該變量放置在指定的Map對象中,import 指令的語法格式如下
<#import path as mapObject>
在上面的語法格式中,path指定要被導入的模板文件,而mapObject是一個Map對象名,通過這行代碼,將導致path模板中的所有變量都被放置
在mapObject中
<#import "/lib/common.ftl" as com>
6、noparse指令
noparse指令指定FreeMarker不處理該指令裏包含的內容,該指令的語法格式如下:
<#noparse>
...
</#noparse>
7、escape、noescape指令
8、assign指令
它用於為該模板頁面創建或替換一個頂層變量
9、setting指令
該指令用於設置FreeMarker的運行環境,該指令的語法格式如下:
<#setting name = value>
name 的取值範圍包括如下幾個
locale :該選項指定該模板所用的國家/語言選項
number_format:該選項指定格式化輸出數字的格式
boolean_format:該選項指定兩個布爾值的語法格式,默認值是"true、false"
date_format,time_format,datetime_format:該選項指定格式化輸出日期的格式
time_zone: 設置格式化輸出日期時所使用的時區
10、宏marco的使用
宏是一個模板片段與變量相關聯。你可以使用定義的指令,可以幫助你多次使用
eg:
<#macro users name>
用戶:${name}
</#macro>
<@users name=‘zhangsan‘></@users>
<@users name=‘lisi‘></@users>
頁面上會輸出zhangsan lisi
freemarker指令介紹