2010-10-05 14 views
18

El siguiente código FreeMarker provoca una excepciónFreemarker asignar longitud de la lista de variables locales

<#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 excepción siguiente:

de hash esperado. it.getList() evaluado en cambio como freemarker.template.SimpleSequence

¿Alguien sabe por qué? ¿Cómo puedo asignar la longitud de la lista a mi variable i?

Respuesta

34

Me di cuenta de que no entendía la sintaxis para el sizebuilt-in. La sintaxis correcta para asignar el tamaño de una lista a una variable local es

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