2010-10-05 4 views
18

Il seguente codice freemarker causa un'eccezioneFreemarker assegnare lunghezza della lista di variabile locale

<#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> 

la seguente eccezione viene generata:

hash atteso. it.getList() valutato invece per freemarker.template.SimpleSequence

Qualcuno sa perché? Come posso assegnare la lunghezza della lista alla mia variabile i?

risposta

34

Ho capito che non ha capito la sintassi dello sizebuilt-in. La sintassi corretta per assegnare la dimensione di un elenco a una variabile locale è

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