我已经在How to use 'for' loop in velocity template?上发布了一个类似的问题。”for“loop in velocity template
所以...基本上我不能在速度模板中使用'for'循环。
比方说,我有一个变量保存整数4.我想使用该变量显示四次。我如何在速度模板中做到这一点?
我已经在How to use 'for' loop in velocity template?上发布了一个类似的问题。”for“loop in velocity template
所以...基本上我不能在速度模板中使用'for'循环。
比方说,我有一个变量保存整数4.我想使用该变量显示四次。我如何在速度模板中做到这一点?
尝试做这样的:
#set($start = 0)
#set($end = 4)
#set($range = [$start..$end])
#foreach($i in $range)
doSomething
#end
的代码没有经过测试,但它应该像这样工作。
您不必像接受的答案那样使用#set
。您可以使用这样的事情:
#foreach($i in [1..$end])
LOOP ITERATION: $i
#end
如果你想零索引你必须使用一个#set
,因为你不能在范围内的运营商减一:
#set($stop = $end - 1)
#foreach($i in [0..$stop])
LOOP ITERATION: $i
#end
第二个不起作用。您不能在范围运算符中内联-1。你必须首先'#set($ foo = $ end - 1)',然后使用'#foreach($ i in [0 .. $ foo])' – Starwarswii 2017-07-21 15:22:33
谢谢@Starwarswii,更正了它 – 2017-07-21 15:25:15
我刚刚提交了一个编辑。 '#set($ stop = $ end-1)'不起作用,'$ stop'保持为空。空间在Velocity中很重要。要正确分配它,请使用'#set($ stop = $ end - 1)'或'#set($ stop = $ end - 1)'。 '#set($ stop = $ end -1)'也是无效 – Starwarswii 2017-07-21 15:30:55
我想补充另一种选择Stephen Ostermiller的答案,你也可以使用$foreach.index
创建一个零索引循环。如果要循环$n
时间:
#foreach($unused in [1..$n])
zero indexed: $foreach.index
#end
这里,$unused
是未使用的,而我们改用$foreach.index
我们的指数,该指数从0开始
我们开始的范围内,在1,因为它的包容性,并因此它将以$unused
循环为[1,2,3,4,5],而$foreach.index
为[0,1,2,3,4]。
有关更多信息,请参阅the user guide。
//哇...我不知道我可以使用$ variable .. $变量来创建一个范围。非常感谢!! – Moon 2011-04-20 18:58:19