速度 - 将循环变量的当前值传递给另一个模板

时间:2011-10-17 08:20:36

标签: java velocity

我有一个Velocity模板,我在其中使用for循环并在其中执行解析语句。问题是parse语句需要访问for循环中的当前对象,但它似乎超出了范围。在这里搜索过后,我尝试了一个建议来创建一个变量并将迭代中的当前变量分配给它,但它只适用于第一次迭代。所有后续迭代都包含对迭代中第一个对象的引用。一个例子:

  #foreach ($someObject in $MyList)
       #set($anotherObject=$someObject)
       #parse('innerTemplate.vm')
  #end

问题是innerTemplate.vm永远不会看到$ someObject,所以如果我使用set构造将它分配给另一个变量,它只会记住列表中的第一个项目。

1 个答案:

答案 0 :(得分:12)

Velocity已经提供了一种通过$ velocityCount获取循环计数的方法。

试试这个:

outerTemplate.vm:

#foreach ($someObject in $MyList)
   #parse('innerTemplate.vm')
#end

innerTemplate:

$velocityCount