1. 程式人生 > >freemarker(FTL)常見語法(JSP中的程式碼轉化為ftl程式碼)

freemarker(FTL)常見語法(JSP中的程式碼轉化為ftl程式碼)

用ftl的原因,專案裡需要把原來的JSP中的程式碼轉成FTL程式碼。

(技巧:在eclipse中是可以安裝一個freemarker的IDE外掛來高亮顯示ftl程式碼的.)

0:引入公共頁面<#include "params.ftl">

1:判斷是否為空:

<#if (resultContext.pagination.resultList)?? && resultContext.pagination.resultList?size gt 0>  //??物件.物件的形式可以用??這樣會對每一個物件進行判斷

 ********

       </#if>

2:集合遍歷:

<#list resultContext.listTepicCommend as tepic>
                           <dl>
                                <dt>
                                <a href="${ctxtPath}/product-${tepic.productId?c}.html">  

                                   //?c:如果數字大於3位數字 那麼預設是格式話。?c則不讓其格式化。 如: 4114 如果不加?c則會變成4,1114 ;加了?c後則還是4114
                                 
                              <dd>${tepic.factory.factoryName}</dd>  
                             </dt>
                           </dl>
         </#list>


  獲得遍歷時的索引值 

<#list list as a>

${a_index+1}

</#list> 

3:訪問Java類中的靜態方法

<#if st == stack.findValue("@[email protected]")><#elseif st == stack.findValue("@[email protected]") >

4:訪問Request物件

${Request.effectType.infoName!'' }  其他域物件比如:Session物件 貌似還是是${Session.*****}

5:使用其他標籤如struts2標籤:

引入tld:<#assign ts=JspTaglibs["/skw-tags"] />      使用:      <@ts.productPrice loginUrl="${ctxtPath}/login_jsp.html"/>

以上記錄滿足啦自己的專案需要。 基本的JSP中的程式碼轉換到ftl中都可以完成啦。感覺上的總結:模版的解析速度比JSP的解析速度是要快些的。