我有一个表,其中包含一个逗号分隔的订单ID列表。我想要做的是分别输出每个ID,以便我可以使用它们在另一个表中查找相应的订单详细信息。
有没有人知道这样做的好方法?
到目前为止,我已经尝试过:
<#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>
但这只是将其作为一行文字输出。
答案 0 :(得分:0)
我们假设您在idsString
中使用逗号分隔ID-s,并且您希望逐个迭代ID-s。然后:
数据模型(使用http://try.freemarker.org/语法):
idsString = "11, 22, 33"
模板:
<#list idsString?split(r'\s*,\s*', 'r') as idString>
${idString}
</#list>
然而,在你发布的模板中,我看到很多奇怪的东西,所以有些想法/指点:
请确保alerts_test.AD_ID_LIST
确实是String
,而不是List
,您可以直接列出,而不是?split
。如果它是String
,则'${alerts_test.AD_ID_LIST}'
最终与alerts_test.AD_ID_LIST
相同。通常,您永远不需要空字符串文字和${}
。它没用(但有时会有害,因为它会将非字符串值转换为字符串)。
?chunk(1)
没用。 ?chunk
的要点是将列表分割为较小的列表,但如果这些较小的列表长1,那么您也可以只列出原始列表中的项目。
没有#data
和#filter
这样的指令。这是一些分叉的FreeMarker版本吗?
如果ID是您需要传递给某个需要数字的API的数字,那么您必须将其转换为idString?number
之类的数字。