J'utilise Velocity 1.7 et dans une boucle foreach, je veux imprimer le compte. Dans le modèle, j'ai la chaîne suivante dans une section # FORECH/# FIND:
Count: $foreach.count
et s'attendait à voir dans le résultat rendu quelque chose comme
Count: 1
...
Count: 2
...
mais tout ce que je vois est:
Count: $foreach.count
...
Count: $foreach.count
...
Des idées qu'est-ce que je fais mal?
Votre code est partiel, nous ne voyons pas la directive de Foreach.
Sinon, je sais que la boucle de forach a une variable intégrée appelée $counter
, bien que dans le guide, ils font référence à $foreach.count
Ni $foreach.count
ni $counter
travaillé pour moi.
cette réponse suggère d'utiliser $velocityCount
, et ça a fonctionné pour moi.
J'ai essayé avec $counter
& $foreach.count
Mais aucun de ceux-ci n'a travaillé pour moi.
Cependant, le $velocityCount
Tag travaillée et ci-dessous est l'exemple.
code d'entrée :
#foreach($entry in $entries)
<p>In for Loop count is : $velocityCount</p>
#end
sortie :
In for Loop count is : 1
In for Loop count is : 2
In for Loop count is : 3
Je ne sais pas pourquoi la variable intégrée de la boucle de Foreach appelée $ Count ne fonctionne pas sous forme de guide. Mais $ VelocityCount est travaillé pour moi.
Il y a une propriété appelée la directive.foreach.counter.name est VelocityCount dans Velocity.Properties Fichier, de sorte que la variable de comptage $ par défaut peut ne pas fonctionner.
k.Honsalis Réponse est obsolète.
À ce stade, vous ne pouvez utiliser que VelocityCount de $, même si la documentation fera référence à des méthodes obsolètes.
#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
La variable par défaut est VelocityCount, mais vous pouvez modifier le nom de la variable et la valeur initiale (uniquement dans les versions antérieures 2.0) si vous le souhaitez.
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
$velocityCount
fonctionne pour moi et j'utilise Velocity 1.5 $foreach.count
& $counter