FreeMarker的空值運算符和邏輯運算符


1.空值處理運算符

如果你在模板中使用了變量但是在代碼中沒有對變量賦值,那么運行生成時會拋出異常。但是有些時候,有的變量確實是null,怎么解決這個問題呢?

判斷某變量是否存在:“??”

用法為:variable??,如果該變量存在,返回true,否則返回false 

<#if aaa??>

  aaa變量存在

<#else>

  aaa變量不存在

</#if>

 

缺失變量默認值:“!”

我們除了可以判斷是否為空值,也可以使用!對null值做轉換處理

  1. 在模板文件中加入
      ${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)> 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM