web-dev-qa-db-fra.com

Comment accéder / obtenir la taille d'un tableau / d'une collection dans des modèles de vélocité?

J'utilise velocity pour les modèles d'e-mails dans mon application Java/spring 3.
Comment puis-je obtenir la taille d'une ArrayList ajoutée au modèle à partir du modèle.

34
Danny

Je n'ai jamais utilisé Velocity, mais son Guide de référence VTL dit que l'appel d'une méthode se fait à l'aide de $customer.getAddress() ou ${purchase.getTotal()}. J'utiliserais donc ${myArrayList.size()}.

39
JB Nizet

Une collection est accessible comme n'importe quel autre objet, donc $collection.size() contiendra une valeur.

Les tableaux sont casse spéciale pour se comporter comme List, donc bien que $array.length Ne fonctionne pas, $array.size() fonctionne.

Dans les anciennes versions de Velocity (avant 1.6), vous utilisiez ListTool et ArrayTool .

17
dimo414

Citation de le guide du développeur :

Object [] Tableau d'objets régulier, il n'y a pas grand-chose à dire ici. Velocity enveloppera 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 modèle. Plus intéressant, le fait que Velocity permettra désormais aux auteurs de modèles de traiter les tableaux comme des listes de longueur fixe (à partir de Velocity 1.6). Cela signifie qu'ils peuvent appeler des méthodes telles que size (), isEmpty () et get (int) sur les tableaux et les instances Java.util.List standard sans se préoccuper de la différence.

Donc, utiliser size() fonctionne aussi bien sur Java.util.List et Java.

0
cristi