5.變量的聲明
-
plain變量:可以在模板的任何地方訪問,包括使用include指令插入的模板,使用assign指令創(chuàng)建和替換
<#assign num=0/>
<#assign x="Hello ${user}!"/> 局部變量:在宏定義體中有效,使用local指令創(chuàng)建和替換
循環(huán)變量:只能存在于指令的嵌套內容,由指令(如list)自動創(chuàng)建;宏的參數(shù)是局部變量,而不是循環(huán)變量
6.運算符的優(yōu)先級
FreeMarker中的運算符優(yōu)先級如下(由高到低排列):
- 1,一元運算符:!
- 2,內建函數(shù):?
- 3,乘除法: *, / , %
- 4,加減法:- , +
- 5,比較: > , < , >= , <= (lt , lte , gt , gte)
- 6,相等: == , = , !=
- 7,邏輯與:&&
- 8,邏輯或: ||
- 9,數(shù)字范圍:..
7.其他指令
7.1 include指令
include指令的作用類似于JSP的包含指令,用于包含指定頁.include指令的語法格式如下:
<#include filename [options]>
在上面的語法格式中,兩個參數(shù)的解釋如下:
filename:該參數(shù)指定被包含的模板文件
options:該參數(shù)可以省略,指定包含時的選項,包含encoding和parse兩個選項,其中encoding指定包含頁面時所用的解碼集,而parse指定被包含文件是否作為FTL文件來解析,如果省略了parse選項值,則該選項默認是true.
7.2 import指令
該指令用于導入FreeMarker模板中的所有變量,并將該變量放置在指定的Map對象中,import指令的語法格式如下:
<#import "/lib/common.ftl" as com>
上面的代碼將導入/lib/common.ftl模板文件中的所有變量,交將這些變量放置在一個名為com的Map對象中.
7.3 setting指令
該指令用于設置FreeMarker的運行環(huán)境,該指令的語法格式如下:<#setting name=value>,在這個格式中,name的取值范圍包含如下幾個:
- locale:該選項指定該模板所用的國家/語言選項
- number_format:指定格式化輸出數(shù)字的格式
- boolean_format:指定兩個布爾值的語法格式,默認值是true,false
- date_format,time_format,datetime_format:指定格式化輸出日期的格式
- time_zone:設置格式化輸出日期時所使用的時區(qū)
7.4 macro ,nested,return 指令
macro可以用于實現(xiàn)自定義指令,通過使用自定義指令,可以將一段模板片段定義成一個用戶指令,使用macro指令的語法格式如下:
<#macro name param1 param2 ... paramN>
...
<#nested loopvar1, loopvar2, ..., loopvarN>
...
<#return>
...
</#macro>
在上面的格式片段中,包含了如下幾個部分:
- name:name屬性指定的是該自定義指令的名字,使用自定義指令時可以傳入多個參數(shù)
- paramX:該屬性就是指定使用自定義指令時報參數(shù),使用該自定義指令時,必須為這些參數(shù)傳入值
- nested指令:nested標簽輸出使用自定義指令時的中間部分
- nested指令中的循環(huán)變量:這此循環(huán)變量將由macro定義部分指定,傳給使用標簽的模板
- return指令:該指令可用于隨時結束該自定義指令.