Freemarker:将逗号分隔列表输出为数组
Freemarker: Output comma separated list as an array
我有一个 table,其中有一个字段包含以逗号分隔的订单 ID 列表。我想做的是分别输出每个 ID,这样我就可以使用它们在另一个 table 中查找相应的订单详细信息。
有谁知道这样做的好方法吗?
到目前为止我已经尝试过:
<#data Alerts_test_table as alerts_test>
<#filter
CUSTOMER_ID_=CONTACTS_LIST.CUSTOMER_ID_1>
<#fields AD_ID_LIST>
<#assign seq = ['${alerts_test.AD_ID_LIST}']>
<#list seq?chunk(1) as row><#list row as cell>
${cell}
</#list> </#list>
</#data>
但这只是将其输出为一行文本。
假设您在 idsString
中有逗号分隔的 ID-s,并且您想要一个接一个地遍历 ID-s。那么:
数据模型(使用 http://try.freemarker.org/ 语法):
idsString = "11, 22, 33"
模板:
<#list idsString?split(r'\s*,\s*', 'r') as idString>
${idString}
</#list>
然而,在你发布的模板中我看到了很多奇怪的东西,所以一些 ideas/pointers:
确保 alerts_test.AD_ID_LIST
确实是 String
,而不是可以直接列出的 List
,无需 ?split
-ing。如果它是 String
,那么 '${alerts_test.AD_ID_LIST}'
最终与 alerts_test.AD_ID_LIST
相同。通常,您永远不需要空字符串文字和其中的 ${}
。它没有用(但有时有害,因为它将非字符串值转换为字符串)。
?chunk(1)
没有用。 ?chunk
的要点是将一个列表分割成更小的列表,但是如果那些更小的列表是 1 长,那么你还不如只列出原始列表的项目。
没有#data
和#filter
这样的指令。这是一些分叉的 FreeMarker 版本吗?
如果 ID 是一个数字,您需要将其传递给某些需要数字的 API,那么您必须将其转换为 idString?number
之类的数字。
我有一个 table,其中有一个字段包含以逗号分隔的订单 ID 列表。我想做的是分别输出每个 ID,这样我就可以使用它们在另一个 table 中查找相应的订单详细信息。
有谁知道这样做的好方法吗?
到目前为止我已经尝试过:
<#data Alerts_test_table as alerts_test>
<#filter
CUSTOMER_ID_=CONTACTS_LIST.CUSTOMER_ID_1>
<#fields AD_ID_LIST>
<#assign seq = ['${alerts_test.AD_ID_LIST}']>
<#list seq?chunk(1) as row><#list row as cell>
${cell}
</#list> </#list>
</#data>
但这只是将其输出为一行文本。
假设您在 idsString
中有逗号分隔的 ID-s,并且您想要一个接一个地遍历 ID-s。那么:
数据模型(使用 http://try.freemarker.org/ 语法):
idsString = "11, 22, 33"
模板:
<#list idsString?split(r'\s*,\s*', 'r') as idString>
${idString}
</#list>
然而,在你发布的模板中我看到了很多奇怪的东西,所以一些 ideas/pointers:
确保
alerts_test.AD_ID_LIST
确实是String
,而不是可以直接列出的List
,无需?split
-ing。如果它是String
,那么'${alerts_test.AD_ID_LIST}'
最终与alerts_test.AD_ID_LIST
相同。通常,您永远不需要空字符串文字和其中的${}
。它没有用(但有时有害,因为它将非字符串值转换为字符串)。?chunk(1)
没有用。?chunk
的要点是将一个列表分割成更小的列表,但是如果那些更小的列表是 1 长,那么你还不如只列出原始列表的项目。没有
#data
和#filter
这样的指令。这是一些分叉的 FreeMarker 版本吗?如果 ID 是一个数字,您需要将其传递给某些需要数字的 API,那么您必须将其转换为
idString?number
之类的数字。