Pouvez-vous faire quelque chose comme ça dans un modèle de vitesse?
#set ($map = $myobject.getMap() )
#foreach ($mapEntry in $map.entrySet())
<name>$mapEntry.key()</name>
<value>$mapEntry.value()</value>
#end
il génère des balises vides comme ceci:
<name></name>
et
<value></value>
Qu'est-ce que je fais mal?
Votre erreur fait référence à clé et valeur en tant que méthodes (avec une parenthèse "()") au lieu de propriétés. Essaye ça:
#set ($map = $myobject.getMap() )
#foreach ($mapEntry in $map.entrySet())
<name>$mapEntry.key</name>
<value>$mapEntry.value</value>
#end
En d'autres termes, utilisez soit une propriété, comme mapEntry.key, ou la méthode, comme mapEntry.getKey ().
Je cherche un moyen de parcourir un HashMap en vitesse, et cela fonctionnera aussi.
#set ($map = $myobject.getMap())
#foreach( $key in $map.keySet())
<name>$key</name>
<value>$resume.get($key)</value>
#end
Tout comme la façon dont vous parcourriez un HashMap en Java.
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
.
Ici la valeur
itemsValue={data1=1,data2=2,data3=3}
Nous devons donc itérer le groupe de valeurs;
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.