取值:
${student} ${student.id}
#{student} #{student.id}
直接輸出字符串
${"hello freemarker"}
#{"hello freemarker"}
if 判斷
<#if student.id == 0>
<h1>0</h1>
<#else if student.id == 1>
<h3>1</h1>
<#else>
error
</#if>
比較運(yùn)算符
=或者==: 判斷兩個(gè)值是否相等.
!=: 判斷兩個(gè)值是否不等.
>或者gt: 判斷左邊值是否大于右邊值
>=或者gte: 判斷左邊值是否大于等于右邊值
<或者lt: 判斷左邊值是否小于右邊值
<=或者lte: 判斷左邊值是否小于等于右邊值
&&: 邏輯與
||: 邏輯或
注意: =和!=可以用于字符串,數(shù)值和日期來(lái)比較是否相等,但=和!=兩邊必須是相同類(lèi)型的值,否則會(huì)產(chǎn)生錯(cuò)誤
FreeMarker 區(qū)分大小寫(xiě) "x"=="X"? false
List 集合數(shù)組
<#list arrays as item>
${item_index} # 取索引下標(biāo)
${item.id} # 取值
</#list>
# 也可以使用<#break>指令跳出迭代
Map 集合字典 (key必須為字符串)
<#if map??>
? ? <#list map?keys as key>
? ? ? ? key:${key!}
? ? ? ? value:${map[key]!}
? ? ? ? <#-- 如果value是個(gè)對(duì)象 ${map[key].id!}-->
? ? </#list>
</#if>
日期類(lèi)型轉(zhuǎn)換
${date?date} # 解析日期
${date?time} # 解析時(shí)間
${date?datetime} # 解析日期+時(shí)間
自定義格式
${date?string('yyyy/MM/dd HH:mm:ss')}
null值的處理
!: 指定缺失變量的默認(rèn)值
??: 判斷某個(gè)變量是否存在
${val!} #為null輸出空白
${val!"默認(rèn)值"} #指定默認(rèn)值
用if判斷null值
<#if val??>
<h1>有值</h1>
<#else>
<h3>val為null</h1>
</#if>
include引入外部文件
<#include "head/hearder.ftl">
import 引入外部文件
將引入的文件守问,放到一個(gè)變量中 可以配合macro指令使用
<#import "head/hearder.ftl" as head>
assign 聲明运沦,賦值
<#assign name = "郭金鵬">
<#assign str = "Hello ${user}!">
算數(shù)運(yùn)算
<#assign x=5>
${ x * x - 100 } # -75?
${ x / 2 } # 2.5
${ 12 % 10 } # 2
int 對(duì)余數(shù)取整
<#assign x=5>
${ (x/2)?int } # 2
${ 1.1?int } # 1
內(nèi)建函數(shù)
<#assign str="<h1>hello freemarker</h1>">
${str ? html} #返回html標(biāo)簽 而不是"<h1>hello freemarker</h1>"字符串
${str ? html ? upper_case} #返回標(biāo)簽的內(nèi)容全大寫(xiě)
html: 對(duì)字符串進(jìn)行HTML編碼
cap_first: 使字符串第一個(gè)字母大寫(xiě)
lower_case: 將字符串轉(zhuǎn)換成小寫(xiě)
upper_case: 將字符串轉(zhuǎn)換成大寫(xiě)
trim: 去掉字符串前后的空白字符
size: 獲取序列中元素的個(gè)數(shù)
int: 對(duì)余數(shù)取整 結(jié)果帶符號(hào)
macro , nested , return指令
<#macro book>? //定義一個(gè)自定義指令
j2ee
</#macro>
<@book />? ? //使用剛才定義的指令
上面的代碼輸出結(jié)果為:????j2ee
<#macro book booklist>? ? //定義一個(gè)自定義指令booklist是參數(shù)
<#list booklist as book>
? ${book}
</#list>
</#macro>
<@book booklist=["spring","j2ee"] />? //使用剛剛定義的指令
上面的代碼為book指令傳入了一個(gè)參數(shù)值,上面的代碼的輸出結(jié)果為:spring j2ee