Pouvez-vous faire quelque chose comme ça dans un modèle de vélocité?
#set ($map = $myobject.getMap() ) #foreach ($mapEntry in $map.entrySet()) $mapEntry.key() $mapEntry.value() #end
il génère des balises vierges comme ceci:
et
Qu’est-ce que je fais mal?
Votre erreur fait référence à key et value en tant que méthodes (avec des parenthèses “()”) au lieu de propriétés. Essaye ça:
#set ($map = $myobject.getMap() ) #foreach ($mapEntry in $map.entrySet()) $mapEntry.key $mapEntry.value #end
En d’autres termes, utilisez une propriété, comme mapEntry.key , ou la méthode, comme mapEntry.getKey () .
Je cherche un moyen de parcourir une HashMap en vélocité, et cela fonctionnera aussi.
#set ($map = $myobject.getMap()) #foreach( $key in $map.keySet()) $key $resume.get($key) #end
Tout comme la façon dont vous parcourriez une HashMap en Java.
Ici la valeur
itemsValue={data1=1,data2=2,data3=3}
Donc, nous devons itérer le groupe de valeur;
foreach ($key in ${itemsValue.keySet()}) if($itemsValue.get($key)==1) Condition end end
Dans le code ci-dessus, nous pouvons voir que la valeur sera comme “data1, data2 etc …” mais après avoir utilisé get (), nous pouvons obtenir la valeur de l’instance.
Pour clarifier (je ne peux pas commenter), en général, vous pouvez utiliser les méthodes Java get ou les remplacer par le nom correspondant sans une petite lettre et sans ()
.
Donc $mapEntry.getKey()
ou map.key
.