-
FreeMarker的模板文件并不比HTML頁面復(fù)雜多少,FreeMarker模板文件主要由如下4個(gè)部分組成:
文本:直接輸出的部分
注釋:<#-- ... -->格式部分,不會(huì)輸出
插值:即${...}或#{...}格式的部分,將使用數(shù)據(jù)模型中的部分替代輸出
FTL指令:FreeMarker指定,和HTML標(biāo)記類似,名字前加#予以區(qū)分,不會(huì)輸出
下面是一個(gè)FreeMarker模板的例子,包含了以上所說的4個(gè)部分:
<html>
<head>
<title>Welcome!</title>
</head>
<body>
<#-- 注釋部分 -->
<#-- 下面使用插值 -->
<h1>Welcome ${user} !</h1>
<p>We have these animals:</p>
<u1>
<#-- 使用FTL指令 -->
<#list animals as being>
<li>${being.name} for ${being.price} Euros</li>
<#list>
<u1>
</body>
</html>
- c函數(shù)是將數(shù)字轉(zhuǎn)換成字符串
${limit?c}
freemarker中的c函數(shù)是將數(shù)字轉(zhuǎn)換成字符串,當(dāng)你在頁面中要顯示帶小數(shù)的數(shù)字時(shí),一定要寫成${x?c}而不能寫成${x?default('')},否則顯示出的數(shù)字都變成了整數(shù),小數(shù)位都被自動(dòng)截掉了。切記??!
- 日期格式
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
- 插值結(jié)果為布爾值:根據(jù)默認(rèn)格式(由#setting指令設(shè)置)將表達(dá)式結(jié)果轉(zhuǎn)換成文本輸出.
<#assign foo=true/>
${foo?string("yes", "no")}
- if操作
<#if (version.type==1)>正式
<#else>debug
</#if>
- switch , case , default , break指令
<#switch value>
<#case refValue>...<#break>
<#case refValue>...<#break>
<#default>...
</#switch>
- list指令
<#list sequence as item>
...
</#list>
- 運(yùn)算符的優(yōu)先級
FreeMarker中的運(yùn)算符優(yōu)先級如下(由高到低排列):
一元運(yùn)算符: !
內(nèi)建函數(shù): ?
乘除法: *, / , %
加減法: - , +
邏輯與: &&
邏輯或: ||
數(shù)字范圍: ..
- 比較運(yùn)算符
=或者==:判斷兩個(gè)值是否相等.
!=:判斷兩個(gè)值是否不等.
>或者gt:判斷左邊值是否大于右邊值
>=或者gte:判斷左邊值是否大于等于右邊值
\<或者lt:判斷左邊值是否小于右邊值
\<=或者lte:判斷左邊值是否小于等于右邊值