Come generare un attributo stringa su un oggetto che può essere nullo
Domanda
Come parte di una tabella di dati in una pagina JSF di cucitura, una colonna richiede l'output di un nome:
<h:outputText value="#{listing.staffMember.name}"/>
Il problema è che "staffMember" potrebbe essere nullo in alcuni elenchi, quindi viene visualizzato l'errore:
javax.el.ELException: /xxxxx.xhtml @42,67 value="#{listing.staffMember.name}": Error reading 'name' on type xxxx.model.AgentStaff_$_javassist_152
Se il valore è null, non voglio che venga visualizzato alcun testo. Ho provato questo:
<h:outputText value="#{listing.staffMember.name}" rendered="#{listing.staffMember != null}"/>
Ma compare lo stesso errore.
Come posso generare una proprietà su un oggetto che può essere nullo?
Soluzione
Probabilmente potresti utilizzare il operatore ternario , che assomiglierebbe a:
value="#{listing.staffMember != null ? listing.staffMember.name : 'None'}"
Oppure puoi utilizzare c: if tag .
Altri suggerimenti
Potresti provare questo (ha sempre funzionato per me):
<h:outputText value="#{listing.staffMember.name}"
rendered="#{not empty listing.staffMember}"/>
Non sono sicuro di quale sia la differenza rispetto a null.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow