Freemarker 将列表长度分配给局部变量

Posted

技术标签:

【中文标题】Freemarker 将列表长度分配给局部变量【英文标题】:Freemarker assign list length to local variable 【发布时间】:2011-04-21 07:28:40 【问题描述】:

以下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

【问题讨论】:

【参考方案1】:

我发现它不理解 size built-in 的语法。 将列表大小分配给局部变量的正确语法是

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

【讨论】:

完美运行!!

以上是关于Freemarker 将列表长度分配给局部变量的主要内容,如果未能解决你的问题,请参考以下文章

最终的局部变量不能分配,不能分配给非最终变量

“无法将 void 分配给隐式类型的局部变量”错误

struts 集成freemarker 无法定义局部变量

最终局部变量不能赋值,不能赋值给非最终变量

在 Kdb 中,如何将每个符号列表分配给值列表

C语言中的 局部变量,存储在啥地方?