2010-01-12 22 views
35

Pouvez-vous faire quelque chose comme ça dans un modèle de vélocité?en vitesse pouvez-vous parcourir l'ensemble d'entrées d'un hashmap java()?

#set ($map = $myobject.getMap()) 
#foreach ($mapEntry in $map.entrySet()) 
    <name>$mapEntry.key()</name> 
    <value>$mapEntry.value()</value> 
#end 

il émet des étiquettes vierges comme ceci:

<name></name> 

et

<value></value> 

Qu'est-ce que je fais mal?

+0

L'avez-vous essayé pour voir ce qui se passe? – Mark

+0

il sort des étiquettes vides et Ayrad

Répondre

89

Votre erreur fait référence à clé et valeur que les méthodes (avec fuite «() » entre parenthèses) au lieu comme propriétés. Essayez ceci:

#set ($map = $myobject.getMap()) 
#foreach ($mapEntry in $map.entrySet()) 
    <name>$mapEntry.key</name> 
    <value>$mapEntry.value</value> 
#end 

En d'autres termes, utilisez une propriété, comme mapEntry.key, ou la méthode, comme mapEntry.getKey().

4

Je suis à la recherche d'un moyen de faire défiler une HashMap en vélocité, et cela fonctionnera aussi. Tout comme vous traverseriez un HashMap en Java.

-1

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.

0

Voici 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 vérifier la valeur sera comme - « data1, données2 etc ... » mais après avoir utilisé le get(), nous pouvons en mesure d'obtenir la valeur d'instance.