J'utilise velocity pour les modèles d'email dans mon application java/spring 3.
Comment puis-je obtenir la taille d'une ArrayList ajoutée au modèle à partir du modèle ?
Réponses
Trop de publicités?Je n'ai jamais utilisé Velocity, mais ses Guide de référence VTL dit que l'appel d'une méthode se fait en utilisant $customer.getAddress()
o ${purchase.getTotal()}
. J'utiliserais donc ${myArrayList.size()}
.
On peut accéder à une collection comme à tout autre objet, donc $collection.size()
contiendra une valeur.
Les tableaux sont boîtier spécial pour se comporter comme List
alors que $array.length
ne fonctionne pas, $array.size()
travaux.
Dans les anciennes versions de Velocity (avant 1.6), vous utilisiez ListTool
y ArrayTool
.
Citation de le guide du développement :
Object [] Tableau d'objets réguliers, il n'y a pas grand chose à dire ici. Velocity va envelopper en interne votre tableau dans une classe qui fournit une interface Iterator, mais cela ne devrait pas vous concerner en tant que programmeur, ou auteur de gabarit. Ce qui est plus intéressant, c'est que Velocity permet désormais aux auteurs de gabarits de traiter les tableaux comme des listes de longueur fixe (à partir de Velocity 1.6). Cela signifie qu'ils peuvent appeler des méthodes comme size(), isEmpty() et get(int) à la fois sur les tableaux et sur les instances standard de java.util.List sans se soucier de la différence.
Donc, en utilisant size()
fonctionne aussi bien sur java.util.List
et des tableaux java.