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

Fuz*_*gic 6 java velocity

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

  #foreach ($someObject in $MyList)
       #set($anotherObject=$someObject)
       #parse('innerTemplate.vm')
  #end
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*ulo 14

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

试试这个:

outerTemplate.vm:

#foreach ($someObject in $MyList)
   #parse('innerTemplate.vm')
#end
Run Code Online (Sandbox Code Playgroud)

innerTemplate:

$velocityCount
Run Code Online (Sandbox Code Playgroud)