Скорость и $ foreach.count - PullRequest
       24

Скорость и $ foreach.count

15 голосов
/ 04 октября 2011

Я использую скорость 1,7 и в цикле foreach я хочу напечатать счет.В шаблоне у меня есть следующая строка в разделе # foreach / # end:

Count: $foreach.count

, и я ожидал увидеть в отрендеренном результате что-то вроде

Count: 1
...
Count: 2
...

, но все, что я вижуэто:

Count: $foreach.count
...
Count: $foreach.count
...

Есть идеи, что я делаю не так?

Ответы [ 7 ]

24 голосов
/ 21 октября 2011

Ни $foreach.count, ни $counter не сработали для меня.

В этом ответе предлагается использовать $velocityCount, и это сработало для меня.

9 голосов
/ 22 ноября 2016

Я пробовал с $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
9 голосов
/ 04 октября 2011

Ваш код неполный, мы не видим директиву foreach.

Иначе, я знаю, что в цикле foreach есть встроенная переменная с именем $counter, хотя в руководстве они ссылаются на $foreach.count

6 голосов
/ 30 декабря 2011

Я не знаю, почему встроенная переменная цикла foreach, называемая $ count, не работает в качестве руководства. Но у меня работает $ speedCount.

Существует свойство с именем directive.foreach.counter.name, равное speedCount, в файле speed.properties, поэтому переменная $ count по умолчанию может не работать.

2 голосов
/ 24 августа 2015

k.honsalis устарел.

На данный момент вы можете использовать только $ speedCount, даже если документация будет ссылаться на устаревшие методы.

#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
1 голос
/ 08 июля 2019

Переменная по умолчанию - 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

0 голосов
/ 20 марта 2014

$velocityCount это работает для меня, и я использую скорость 1,5 $foreach.count & $counter

...