2010-10-05 102 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>