Ответ 1
Ваш код является частичным, мы не видим директивы foreach.
Иначе я знаю, что цикл foreach имеет встроенную переменную с именем $counter
, хотя в руководстве они ссылаются на $foreach.count
Я использую скорость 1.7 и внутри цикла foreach я хочу напечатать счетчик. В шаблоне у меня есть следующая строка в разделе # foreach/# end:
Count: $foreach.count
и ожидал увидеть в полученном результате что-то вроде
Count: 1
...
Count: 2
...
но все, что я вижу, это:
Count: $foreach.count
...
Count: $foreach.count
...
Любые идеи, что я делаю неправильно?
Ваш код является частичным, мы не видим директивы foreach.
Иначе я знаю, что цикл foreach имеет встроенную переменную с именем $counter
, хотя в руководстве они ссылаются на $foreach.count
Ни для меня не $foreach.count
и $counter
.
Этот ответ предлагает использовать $velocityCount
, и это сработало для меня.
Я пробовал с $counter
и $foreach.count
, но ни один из них не работал у меня.
Однако тег $velocityCount
работал и ниже - это пример.
Код ввода:
#foreach($entry in $entries)
<p>In for Loop count is : $velocityCount</p>
#end
Вывод:
In for Loop count is : 1
In for Loop count is : 2
In for Loop count is : 3
Я не знаю, почему встроенная переменная foreach loop, называемая $count, не работает в качестве руководства. Но $velocityCount работает для меня.
Существует свойство, называемое directive.foreach.counter.name - значение velocityCount в файле velocity.properties, поэтому переменная $count может не работать.
k.honsalis ответ устарел.
В этот момент вы можете использовать $velocityCount, даже если документация будет ссылаться на устаревшие методы.
#foreach($item in $items)
counter 0: $foreach.index
counter 1: $foreach.count
counter 2: $counter
counter 3: $velocityCount
#end
Output:
$foreach.index
$foreach.count
$counter
1
$velocityCount
работает для меня, и я использую скорость 1.5 $foreach.count
и $counter
Переменная по умолчанию - SpeedCount, но вы можете изменить имя и начальное значение переменной (только в предыдущих версиях 2.0), если хотите.
VelocityEngine engine = new VelocityEngine();
engine.setProperty("directive.foreach.counter.name", "velocityCount");
engine.setProperty("directive.foreach.counter.initial.value", 1);
http://people.apache.org/~henning/velocity/htmlsingle/VelocityUsersGuide.html