1.空值處理運算符
如果你在模板中使用了變量但是在代碼中沒有對變量賦值,那么運行生成時會拋出異常。但是有些時候,有的變量確實是null,怎么解決這個問題呢?
判斷某變量是否存在:“??”
用法為:variable??,如果該變量存在,返回true,否則返回false
<#if aaa??> aaa變量存在 <#else> aaa變量不存在 </#if>
缺失變量默認值:“!”
我們除了可以判斷是否為空值,也可以使用!對null值做轉換處理
- 在模板文件中加入
${aaa!'-'}
在代碼中不對aaa賦值,也不會報錯了 ,當aaa為null則返回!后邊的內容-
2.運算符
算數運算符
FreeMarker表達式中完全支持算術運算,FreeMarker支持的算術運算符包括:+, - , * , / , %
邏輯運算符
邏輯運算符有如下幾個:
邏輯與:&&
邏輯或:||
邏輯非:!
邏輯運算符只能作用於布爾值,否則將產生錯誤
比較運算符
表達式中支持的比較運算符有如下幾個:
1 =或者==:判斷兩個值是否相等.
2 !=:判斷兩個值是否不等.
3 >或者gt:判斷左邊值是否大於右邊值
4 >=或者gte:判斷左邊值是否大於等於右邊值
5 <或者lt:判斷左邊值是否小於右邊值
6 <=或者lte:判斷左邊值是否小於等於右邊值
注意: =和!=可以用於字符串,數值和日期來比較是否相等,但=和!=兩邊必須是相同類型的值,否則會產生錯誤,而且FreeMarker是精確比較,"x","x ","X"是不等的.其它的運行符可以作用於數字和日期,但不能作用於字符串,大部分的時候,使用gt等字母運算符代替>會有更好的效果,因為 FreeMarker會把>解釋成FTL標簽的結束字符,當然,也可以使用括號來避免這種情況,如:<#if (x>y)>