1.定义变量: <#assign foo=ture /> <#assign a=1/>
2.类似java的for循环:
<#assign a=101/>
<#list 1..a-1as t> ${t} </#list> 循环1到100 这不就相当于 for(int i=1;i<=100;i++){ }3.list循环
[#list productCategories as rootProductCategory]
[#if rootProductCategory_index = 0] // 循环下标
<li class="[#if rootProductCategory_index % 2 == 0]odd[#else]even[/#if] clearfix">
<div class="item [#if !rootProductCategory_has_next]last[/#if]" >
</div>
</li>
[/#if]
[/#list]
4.Map和Set 用法
product实体:
/** 会员价 */ private Map<MemberRank, BigDecimal> memberPrice = new HashMap<MemberRank, BigDecimal>();
[#if product.memberPrice?has_content]
<dl>
<dt>${message("Product.memberPrice")}:</dt>
<dd>
[#list product.memberPrice.keySet() as memberRank]
${memberRank.name}: <span>${currency(product.memberPrice.get(memberRank), true)}</span>
[/#list]
</dd>
</dl>
[/#if]
[#if product.specifications?has_content]
<div id="specification" class="specification clearfix">
<div class="title">${message("shop.product.specificationTitle")}</div>
[#assign specificationValues = product.goods.specificationValues /]
[#list product.specifications as specification]
<dl>
<dt>
<span title="${specification.name}">${abbreviate(specification.name, 8)}:</span>
</dt>
[#list specification.specificationValues as specificationValue]
[#if specificationValues?seq_contains(specificationValue)]
<dd>
<a href="javascript:;" class="${specification.type}[#if product.specificationValues?seq_contains(specificationValue)] selected purpel_color[/#if]" val="${specificationValue.id}" [#if specification.type == "text"] specifVal="${specificationValue.name}"[/#if]>[#if specification.type == "text"]${specificationValue.name}[#else]<img src="${specificationValue.image}" alt="${specificationValue.name}" title="${specificationValue.name}" />[/#if]<span title="${message("shop.product.selected")}"> </span></a>
</dd>
[/#if]
[/#list]
</dl>
[/#list]
</div>
[/#if]