如何在速度模板中附加哈希表?

时间:2015-06-29 13:06:41

标签: velocity

我试图以速度附加两个哈希表。

#foreach($dun1 in $dotcontent.pull("+structureName:Checnas +(conhost:fe1d98e8-9699-4f3f-abf5-a6c0afc8ab47 conhost:SYSTEM_HOST)",10,"modDate desc"))
#set($foo={
    $!{dun1.mname}:$!{dun1.subname} 
})
#end

在上面的每个循环中,我从结构中提取内容" Checnas "。 但最后我们只能得到内容中的最后一个值。要解决这个问题,我们需要为每次迭代添加一个。我需要附加哈希表的语法。 请帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

您的代码目前每次都在写$ foo,因此您只是获得最后一个值。您可以使用力度列表来实现此目的。 这可能有效:

#set($listOfMnames=[])
#set($listOfSubNames=[])

#foreach($dun1 in $dotcontent.pull("+structureName:Checnas +(conhost:fe1d98e8-9699-4f3f-abf5-a6c0afc8ab47 conhost:SYSTEM_HOST)",10,"modDate desc"))
#set($foo=$listOfMnames.add($!{dun1.mname}))
#set($foo=$listOfSubNames.add($!{dun1.subname}))
#end

这样,您最终会得到两个列表'listOfMnames'和'listOfSubNames',两个列表都已完全填充。您可以稍后迭代它们以打印/利用它们的值。

This link会有所帮助,并告诉您使用$ foo的目的,该$ foo未被使用且仅被分配。 或者,您也可以使用具有正确键/值对的速度图,但一定要在循环开始之前声明它。