2012-05-23 4 views
1

Я хочу использовать для цикла в режиме Velocity. Я хочу взять переменную счетчика в виде скорости и петле до тех пор, пока она не станет равной. напримерДля цикла в Velocity

counter = 3 
for(i=0; i< counter; i++){ 

... 

} 
+1

Это [первый результат] (http://velocity.apache.org/engine/devel/vtl-reference-guide.html#aforeach_-_Loops_through_a_list_of_objects) в google для «скорости для цикла» – adarshr

ответ

9

Вы можете использовать foreach для этого, определив диапазон и итерацию над ним.

#set($start = 0) 
#set($end = 3) 
#foreach($i in [$start..$end]) 
    ... 
#end 
+1

Отлично, и вы может сделать #foreach ($ i в [0..10]), если вам нужен жестко закодированный цикл. – monkjack

+0

Обратите внимание, что эти петли 4 раза, когда '$ i' находится в [0, 1, 2, 3], в отличие от цикла for в вопросе' for (i = 0; i Starwarswii

2

ответ Алекс работает отлично, но не отметить, что петли в 4 раза общее, так как начало и конец включены в Velocity #foreach цикла. Другой способ сделать это, если вы хотите получить нулевой индекс и иметь исключительное конечное значение, заключается в использовании встроенного $foreach.index. Если вы хотите, чтобы петли $n раз:

#foreach($unused in [1..$n]) 
    zero indexed: $foreach.index 
#end 

здесь, $unused не используется, и мы вместо того, чтобы использовать $foreach.index для индекса, который начинается с 0.

В случае вопрос, в $n равно 3.

Мы начинаем диапазон в 1, как он включен, и поэтому он будет зацикливаться на $unused, являющемся [1, 2, 3], тогда как $foreach.index будет [0, 1, 2].

См. the user guide для получения дополнительной информации.

+0

Хороший улов! Прошло много времени с тех пор, как я использовал скорость :) – Alex

Смежные вопросы