我有一个Velocity模板,我在其中使用for循环并在其中执行解析语句。问题是parse语句需要访问for循环中的当前对象,但它似乎超出了范围。在这里搜索过后,我尝试了一个建议来创建一个变量并将迭代中的当前变量分配给它,但它只适用于第一次迭代。所有后续迭代都包含对迭代中第一个对象的引用。一个例子:
#foreach ($someObject in $MyList)
#set($anotherObject=$someObject)
#parse('innerTemplate.vm')
#end
问题是innerTemplate.vm永远不会看到$ someObject,所以如果我使用set构造将它分配给另一个变量,它只会记住列表中的第一个项目。
答案 0 :(得分:12)
Velocity已经提供了一种通过$ velocityCount获取循环计数的方法。
试试这个:
outerTemplate.vm:
#foreach ($someObject in $MyList)
#parse('innerTemplate.vm')
#end
innerTemplate:
$velocityCount