Cómo generar un atributo de cadena en un objeto que puede ser nulo
Pregunta
Como parte de una tabla de datos en una página JSF de costura, una columna requiere la salida de un nombre:
<h:outputText value="#{listing.staffMember.name}"/>
El problema es que " staffMember " puede ser nulo en algunos listados, así que me aparece el error:
javax.el.ELException: /xxxxx.xhtml @42,67 value="#{listing.staffMember.name}": Error reading 'name' on type xxxx.model.AgentStaff_$_javassist_152
Si el valor es nulo, no quiero que se muestre ningún texto. Intenté esto:
<h:outputText value="#{listing.staffMember.name}" rendered="#{listing.staffMember != null}"/>
Pero aparece el mismo error.
¿Cómo puedo generar una propiedad en un objeto que puede ser nulo?
Solución
Probablemente podría usar el operador ternario , que se vería algo así como:
value="#{listing.staffMember != null ? listing.staffMember.name : 'None'}"
O puede usar c: etiqueta si .
Otros consejos
Podrías intentar esto (siempre funcionó para mí):
<h:outputText value="#{listing.staffMember.name}"
rendered="#{not empty listing.staffMember}"/>
No estoy seguro de cuál es la diferencia con respecto a nulo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow