freemarker插值

http://blog.csdn.net/chang_li/article/details/51913105html

在複雜頁面上(包含大量判斷、日期金額格式化)的頁面上,freemarker的性能比使用tag和el的jsp好。java

1、FreeMarker的插值有以下兩種類型:1,通用插值${expr};2,數字格式化插值:#{expr}或#{expr;format} jsp

 

[java]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <pre name="code" class="html">${book.name?if_exists } //用於判斷若是存在,就輸出這個值   
  2. ${book.name!"xxx"}//默認值xxx   
  3. ${book.date?string('yyyy-MM-dd')} //日期格式   
  4. ${book?string.number} 20 //三種不一樣的數字格式   
  5. ${book?string.currency} <#-- $20.00 -->   
  6. ${book?string.percent} <#-- 20% -->  
  7. ${.now?datetime}//當前時間戳  
 
 
 
 

2、FreeMarker提供兩個運算符來避免空值:1. !: 指定缺失變量的默認值;2. ??:判斷變量是否存在。!運算符有兩種用法:variable!或variable!defaultValue。第一種用法不給變量指定默認值,代表默認值是空字符串、長度爲0的集合、或長度爲0的Map對象。例子:性能

[java]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <pre name="code" class="html"><#-- ${sss} 沒有定義這個變量,會報異常! -->  
  2. ${sss!} <#--沒有定義這個變量,默認值是空字符串! -->  
  3. ${sss!"abc"} <#--沒有定義這個變量,默認值是字符串abc! -->  
 3、??運算符返回布爾值,如:variable??,若是變量存在,返回true,不然返回false。 
 

 

將它和 if 指令合併,那麼若是 user 變量不存在的話將會忽略整個問候代碼段:網站

[java]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <#if user??><h1>Welcome ${user}!</h1></#if>  

 



4、Freemarker中對於javabean的處理跟EL表達式一致,類型可自動轉化!很是方便!
有一點須要注意: ${..}只能用於文本部分做爲字符串輸出,不能用於判斷真假值
也就是不能這麼寫:<#if ${isBig}>Wow!</#if> ,應爲<#if isBig>Wow!</#if>


5、對list進行遍歷以及if else判斷spa

[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. 1)<table  width="100%">  
  2.     <#list investList as item>  
  3.     <tr>  
  4.         <td align="left" style="width:50%!important;">  
  5.             ${item.userName}<br>${item.addTime?string("yyyy-MM-ddHH:mm:ss")}  
  6.         </td>  
  7.         <td align="right" style="width:50% !important;">${item.money?string('0.00')}元<br/>  
  8.             <#if item.tenderType == 0>網站投標  
  9.             <#elseif item.tenderType == 1>自動投標  
  10.             <#elseif item.tenderType == 2>手機投標  
  11.             </#if>  
  12.         </td>  
  13.     </tr>  
  14.     </#list>  
  15. </table>  



2))
[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <select name="awardTypeId" class="type">  
  2. <option value="0" selected="selected">所有</option>  
  3. <#if typeList??>  
  4. <#list typeList as type>  
  5. <option value="${type.id!}" >${type.name!}</option>  
  6. </#list>  
  7. </select>  

3)assign指令用於爲該模板頁面建立或替換一個頂層變量,
[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <#assign x="Hello ${user}!">  
4)
[html]  view plain  copy
 
 在CODE上查看代碼片派生到個人代碼片
  1. <#if data.list?size > 0>  
相關文章
相關標籤/搜索