【发布时间】:2017-04-23 22:13:40
【问题描述】:
我正在传递一个带有字符串映射到 ArrayList 的 HashMap。 该地图包含两个条目,它们是相同长度的 ArrayList,我希望它们水平对齐,所以我认为 foreach-range 循环比单独的条目上的 foreach 循环更好。
我有:
#foreach($i in [1..$entry1.size()])
<li>
<h3>$entry1.get($i-1)</h3>
<video width="320" height="240" controls>
<source src="$entry2.get($i-1)" type="video/mp4">
</video>
</li>
#end
Velocity 只是打印 $entry1.get($i-1) 并按字面意思计算 $entry1.size() 次 $entry2.get($i-1),而不是从相应的 ArrayList 索引中注入值。
速度Documentation 说:
注意:对于 ArrayList 示例,使用 [..] 运算符定义的元素可以使用 ArrayList 类中定义的方法进行访问。因此,例如,您可以使用 $monkey.Say.get(0) 访问上面的第一个元素。
例子是:
#set( $monkey.Say = ["Not", $my, "fault"] ) ## ArrayList
我是否正确访问了 ArrayList?
【问题讨论】:
-
我认为你需要在破折号之前和之后放置空格,以便减法工作。另请参阅this。