用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("@com.test.bo.SkuTag@NEW")><#elseif st == stack.findValue("@com.test.bo.SkuTag@SPECIAL") >
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的解析速度是要快些的。 |