Netsuite Freemarker PDF/电子邮件模板列表过滤器

Netsuite Freemarker PDF/电子邮件模板列表过滤器,netsuite,freemarker,Netsuite,Freemarker,我想在Netsuite HTML/电子邮件模板中创建一个筛选项目列表。似乎这行代码在使用freemarker时不起作用 <#assign xs = [1, -2, 3, 4, -5]> Positives: <#list xs?filter(x -> x > 0) as x>${x} </#list> Negatives: <#list xs?filter(x -> x < 0) as x>${x} </#list&g

我想在Netsuite HTML/电子邮件模板中创建一个筛选项目列表。似乎这行代码在使用freemarker时不起作用

<#assign xs = [1, -2, 3, 4, -5]>
Positives:
<#list xs?filter(x -> x > 0) as x>${x} </#list>
Negatives:
<#list xs?filter(x -> x < 0) as x>${x} </#list>

积极因素:
x>0)作为x>${x}
负片:
x<0)作为x>${x}

你们能给我一些关于如何做到这一点的见解吗?提前非常感谢!我是一个初学者,搜索了很多次,不幸的是一点运气都没有。

看起来NetSuite正在使用FreeMarker v2.3.26,而内置的
过滤器是在2.3.29中添加的

这里有一种不用过滤的方法:

<#assign xs = [1, -2, 3, 4, -5]>
<#assign xpos = []>
<#assign xneg = []>

<#list xs as x>
    <#if x gt 0>
        <#assign xpos = xpos + [x]>
    <#elseif x lt 0>
        <#assign xneg = xneg + [x]>
    </#if>
</#list>

Positives:
<#list xpos as x>${x} </#list>

Negatives:
<#list xneg as x>${x} </#list>

积极因素:
${x}
负片:
${x}

注意,在一个列表上进行迭代(这是许多类似于上面的连接的结果)可能会很慢。这种连接旨在将几个列表相加,而不是从长度为1的列表构建一个完整的新列表。因此,由于那里没有
?过滤器
,您也可以将条件放入
列表
中。然而,像
#sep
?index
等事情将无法正常工作。