Je viens de googler pour "for loop", mais il semble que la vélocité ait "foreach" uniquement.
Comment utiliser "for loop" dans le modèle de vélocité?
Il y a seulement #foreach
. Vous devrez mettre quelque chose d'itérable dans votre contexte. Par exemple. rendre bar
disponible c'est un tableau ou Collection
d'une sorte quelconque:
#foreach ($foo in $bar)
$foo
#end
Ou si vous souhaitez parcourir une plage de nombres:
#foreach ($number in [1..34])
$number
#end
Je voulais ajouter que les informations d'itération dans la boucle foreach sont accessibles à partir de $foreach
propriété:
#foreach ($foo in $bar)
count: $foreach.count
index: $foreach.index
first: $foreach.first
last: $foreach.last
#end
(la dernière fois que j'ai vérifié que last
contenait un bogue)
J'ai trouvé la solution lorsque j'essayais de boucler une liste. Mettez la liste dans une autre classe et créez getter et setter pour la liste obj. par exemple
public class ExtraClass {
ArrayList userList = null;
public ExtraClass(List l) {
userList = (ArrayList) l;
}
public ArrayList getUserList() {
return userList;
}
public void setUserList(ArrayList userList) {
this.userList = userList;
}
}
Ensuite, pour le contexte de vitesse, placez l'Extraclass comme entrée. par exemple.
ExtraClass e = new ExtraClass(your list);
VelocityContext context = new VelocityContext();
context.put ("données", e); Dans le modèle
#foreach ($x in $data.userList)
$x.fieldname //here $x is the actual obj inside the list
#end