Arrays Freemarker动态地将元素添加到数组中

Arrays Freemarker动态地将元素添加到数组中,arrays,freemarker,Arrays,Freemarker,我试图在一列中列出我所有的标记名。在列出它们时,我将每个标记的名称存储到数组tagarray。在列表下面,我想在中输出整个数组 <div> <#assign tagarray = []> <#list elements as element> <#if element.tags??> <#list eleme

我试图在一列中列出我所有的标记名。在列出它们时,我将每个标记的名称存储到数组
tagarray
。在列表下面,我想在
中输出整个数组

        <div>
            <#assign tagarray = []>
            <#list elements as element>
                <#if element.tags??>
                    <#list element.tags as tag>
                        <#if tag.myProperty??>
                            <span class="section-name">${tag.text}</span>
                            <br />
                            <#assign tagarray = tagarray + ["${tag.text}"]>
                        </#if>
                    </#list>
                </#if>
            </#list>
            <p>${tagarray}</p>
        </div>

${tag.text}

${tagarray}

问题是,这一行代码:

<#assign tagarray = tagarray + ["${tag.text}"]>


似乎不起作用。根据一些网站的说法,上面的语法是正确的,所以我不知道它为什么不起作用。

作业行在语法上看起来是正确的(虽然你不需要
$
,但你可以只写
..+[tag.text]
,也可以用
+=
,比如
,让它不那么冗长)<代码>${tagarray}将失败,因为不清楚如何格式化序列。也许你想要
${tagarray?在那里加入(',')}


还要注意的是,如果多次添加序列,列出结果会很慢。在您的用例中,这可能不是一个问题。

这里有代码,但是在执行步骤2之前,您不能修改行到数组的值有多少个值在步骤2中只有一个值在我们的示例中只有一个,但在步骤4中它将添加3个值,然后现在数组值在前面,所以步骤5执行4次。步骤2只执行一次

1. <#assign array=[0]>
2. <#list array as a>
3.    ${a}
4.      <#assign array = array + [1]><#assign array = array + [1]><#assign array = array + [1]>
5.      <#list array as c>
6.          ${c}
7.      </#list>
8. </#list>
1。
2.
3.    ${a}
4.
5.
6.          ${c}
7.
8.