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的解析速度是要快些的。