如何在freemarker中使用list中的assign定义的变量

时间:2013-06-16 16:19:22

标签: list hashmap freemarker

我有一个freemarker问题。我有一个叫做节点的哈希映射,我会像这样迭代它:

<#list hashmap.collection as nodes>
 .....some displaying
 <#assign nodeName>
${nodes.name}
 </#assign>
   <#list hashmap2.nodeName.collection as nodes2>
    .......some more displaying

这段代码不是因为freemarker试图在hashmap2中找到nodeName键... 有没有办法在freemarker中做到这一点?

感谢您的回答!

1 个答案:

答案 0 :(得分:1)

那应该是hasmap2[nodeName].collection。在.之后放置的内容始终被视为字面上子变量名称,而在[]内,只要求值为字符串,就可以给出任意表达式。因此,您可能根本不需要#assign,您可以写hashmap2[nodes.name].collection

此外,您应该只写<#assign nodeName>${nodes.name}</#assign>而不是<#assign nodeName = nodes.name>。同样,如果您需要任务。

此外,由于nodes存储了一个节点,因此如果您将其称为node,您的代码将更具可读性。