-
FreeMarker的模板文件并不比HTML頁面復雜多少,FreeMarker模板文件主要由如下4個部分組成:
文本:直接輸出的部分
注釋:<#-- ... -->格式部分,不會輸出
插值:即${...}或#{...}格式的部分,將使用數據模型中的部分替代輸出
FTL指令:FreeMarker指定,和HTML標記類似,名字前加#予以區分,不會輸出
下面是一個FreeMarker模板的例子,包含了以上所說的4個部分:
<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函數是將數字轉換成字符串
${limit?c}
freemarker中的c函數是將數字轉換成字符串,當你在頁面中要顯示帶小數的數字時,一定要寫成${x?c}而不能寫成${x?default('')},否則顯示出的數字都變成了整數,小數位都被自動截掉了。切記!!
- 日期格式
${lastUpdated?string("yyyy-MM-dd HH:mm:ss zzzz")}
- 插值結果為布爾值:根據默認格式(由#setting指令設置)將表達式結果轉換成文本輸出.
<#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>
- 運算符的優先級
FreeMarker中的運算符優先級如下(由高到低排列):
一元運算符: !
內建函數: ?
乘除法: *, / , %
加減法: - , +
邏輯與: &&
邏輯或: ||
數字范圍: ..
- 比較運算符
=或者==:判斷兩個值是否相等.
!=:判斷兩個值是否不等.
>或者gt:判斷左邊值是否大于右邊值
>=或者gte:判斷左邊值是否大于等于右邊值
\<或者lt:判斷左邊值是否小于右邊值
\<=或者lte:判斷左邊值是否小于等于右邊值