如何在 FreeMarker 中将列表转换为数组?

How can I convert a List to an Array in FreeMarker?

我有这个数组(SimpleSequence):

<#assign arrayList = [100, 200, 300, 400, 500] />

<#list arrayList as item>
    <#assign addToArray = "<p>" + item + "</p>" />
</#list>

我想将 addToArray 添加到新数组中。

我怎样才能做到这一点?

根据您想要转换序列的每个项目以创建另一个序列的注释(列表或数组......FreeMarker 不关心)。不幸的是,FTL 中没有 map 函数(从 2.3.25 开始),但只要序列不是很长(因为这会变慢),您可以使用序列连接来解决这个问题:

<#assign array = [100, 200, 300, 400, 500] />

<#assign mappedArray = []>
<#list array as item>
    <#assign mappedArray += ["<p>${item}</p>"]>
</#list>

(如果 Liferay 使用的版本太旧,您可能需要改为 <#assign mappedArray = mappedArray + ["<p>${item}</p>"]>。)