我已經在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