2010-03-12 4 views
9

J'essaye de faire une boucle sur un hashmap et d'afficher un nombre cases à cocher avec id la clé de la hashmap et étiquette la valeur de la hashmap. Quelqu'un sait comment la syntaxe de tapisserie pour cela est?Tapestry boucle à travers hashmap

Vive Dimitris

Répondre

14

Vous devriez être en mesure de boucler à travers le jeu de clés comme celui-ci:

<form t:type="Form"> 
    <t:Loop t:source="myMap.keySet()" t:value="currentKey"> 
     <input type="Checkbox" t:type="Checkbox" t:id="checkbox" 
      t:value="currentValue"/> 
     <label t:type="Label" for="checkbox">${mapValue}</label> 
    </t:Loop> 
</form> 

fichier Classe:

@Property 
private Object currentKey; 

@Persist 
private Set<String> selection = new HashSet<String>(); 

public Map<String,String> getMyMap() { 
    ... 
} 

public boolean getCurrentValue() { 
    return this.selection.contains(this.currentKey); 
} 

public void setCurrentValue(final boolean currentValue) { 
    final String mapValue = this.getMapValue(); 

    if (currentValue) { 
     this.selection.add(mapValue); 
    } else { 
     this.selection.remove(mapValue); 
    } 
} 


public String getMapValue() { 
    return this.getMyMap().get(this.currentKey); 
} 

Je n'ai pas compilé, mais il devrait vous aider à démarrer.

+1

Merci beaucoup! C'est exactement ce que je cherchais. J'ai dû ajouter une méthode. public String getLabelValue() { \t Renvoie this.getMyMap(). Get (this.currentKey); } et de changer afin d'afficher les valeurs de ma HashMap et passer les clés à la page suivante. Merci beaucoup ... – Sfairas

Questions connexes