2010-10-05 42 views
18

以下的freemarker代碼導致異常Freemarker的分配列表長度到局部變量

<#assign i= it.getList().size()> 
<#list it.getList() as elem> 
    <#if i==1> 
    <li>${elem.name}</li> 
    <#else> 
    <li class="marked">${elem.name}</li> 
    </#if> 
    <#assign i = i-1> 
</#list> 

以下拋出異常:

預期散列。 it.getList()評估,而不是freemarker.template.SimpleSequence

任何人都知道爲什麼?我如何將列表的長度分配給我的變量i

回答

34

我想通了,它不明白sizebuilt-in的語法。 將列表大小分配給局部變量的正確語法是

<#assign i = it.getList()?size>