如何在Velocity foreach循环中获得从零开始的计数

sum*_*ulb 15 java foreach velocity

我试图在Velocity #foreach指令中获得一个从零开始的计数器.

如果我使用:

#foreach ($item in $list)
   item.getName() : $velocityCount
#end
Run Code Online (Sandbox Code Playgroud)

我会得到:

Fred : 1
Wilma : 2
Barney : 3
Run Code Online (Sandbox Code Playgroud)

但是我需要:

Fred : 0
Wilma : 1
Barney : 2
Run Code Online (Sandbox Code Playgroud)

从速度模板的角度来看,解决方案必须尽可能简单.

编辑:
我可以使用:

#foreach ($item in $list)
   #set( $num = $velocityCount - 1 ) //The white space in mandatory
   item.getName() : $num
#end
Run Code Online (Sandbox Code Playgroud)

它的工作原理.但我正在寻找更优雅的解决方案.

编辑2:
我也需要基于单一的计数器.也就是说,在同一模板中,我很可能会有一个#foreach指令需要一个基于零的计数器和另一个#foreach需要一个基本计数器的指令.

ser*_*erg 23

如果您使用的是Velocity 1.7,则循环内部可以使用$foreach.index(基于0)和$foreach.count(基于1)特殊变量.

$velocityCount 是很久以前被弃用的东西.


Dhi*_*dya 7

#set($i = 0)

  #foreach($str in $names)
    #set($i = $i+1)
    $i : $str
 #end
Run Code Online (Sandbox Code Playgroud)