Comment afficher les valeurs hashmap dans jsf?
J'ai bean "MyBean", qui a la propriété HashMap - "carte de" qui les valeurs de type Maclasse. J'en veux pour preuve certaines propriétés de la carte dans le jsf à l'aide de l'interface utilisateur:la répétition.
Mais ces code:
<ui:repeat var="var" value="#{mybean.map}" >
<tr>
<td> <h:outputText value="#{var.value.property1}"></h:outputText> </td>
<td><h:outputText value="#{var.value.property2}"></h:outputText></td>
</tr>
</ui:repeat>
Mais ce code n'a pas montrer quoi que ce soit. Mais quand j'essaie de montrer hashmap valeurs dans les jsp de cette façon, il a été un vrai succès. Où je me trompe? Et comment résoudre ce problème?
source d'informationauteur Aram Gevorgyan
Vous devez vous connecter pour publier un commentaire.
De la la documentation pour la
repeat
valeur d'attribut:Donc, var est défini comme votre
HashMap
et EL essaie de chercher la clé"value"
sur elle. Vous devez exposer votre entrée de jeu comme unList
.C'est en effet un pain pita. Le
<c:forEach>
pris en chargeMap
pour longtemps. En dehors de la fourniture d'un autre getter comme suggéré par McDowell, vous pouvez également contourner ce problème par un personnalisé EL fonction.où l'EL fonction de ressembler à ce
Ou, si vous êtes sur EL 2.2 déjà (fourni par le Servlet 3.0 compatible récipients tels que Glassfish 3, Tomcat 7, etc), alors il suffit d'utiliser
Map#entrySet()
et puisSet#toArray()
.