Comment sortir un attribut de chaîne sur un objet pouvant être null
Question
En tant que partie d'un dataTable dans une page JSF de couture, une colonne nécessite la sortie d'un nom:
<h:outputText value="#{listing.staffMember.name}"/>
Le problème est que " staffMember " peut être nul sur certaines annonces, je reçois donc l'erreur:
javax.el.ELException: /xxxxx.xhtml @42,67 value="#{listing.staffMember.name}": Error reading 'name' on type xxxx.model.AgentStaff_$_javassist_152
Si la valeur est null, je ne veux pas que le texte soit rendu. J'ai essayé ceci:
<h:outputText value="#{listing.staffMember.name}" rendered="#{listing.staffMember != null}"/>
Mais la même erreur se produit.
Comment puis-je générer une propriété sur un objet pouvant être null?
La solution
Vous pourriez probablement utiliser le opérateur ternaire , qui ressemblerait à quelque chose comme:
value="#{listing.staffMember != null ? listing.staffMember.name : 'None'}"
Vous pouvez également utiliser le c: if tag .
Autres conseils
Pourriez-vous essayer ceci (a toujours fonctionné pour moi):
<h:outputText value="#{listing.staffMember.name}"
rendered="#{not empty listing.staffMember}"/>
Vous ne savez pas quelle est la différence avec la comparaison à null.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow