Как вывести строковый атрибут объекта, который может иметь значение null
Вопрос
Как часть dataTable на странице JSF, один столбец требует вывода имени:
<h:outputText value="#{listing.staffMember.name}"/>
Проблема в том, что в некоторых списках «staffMember» может иметь значение null, поэтому я получаю сообщение об ошибке:
javax.el.ELException: /xxxxx.xhtml @42,67 value="#{listing.staffMember.name}": Error reading 'name' on type xxxx.model.AgentStaff_$$_javassist_152
Если значение равно нулю, я не хочу, чтобы какой-либо текст отображался.Я попробовал это:
<h:outputText value="#{listing.staffMember.name}" rendered="#{listing.staffMember != null}"/>
Но возникает та же ошибка.
Как я могу вывести свойство объекта, которое может иметь значение null?
Решение
Вы могли бы, вероятно, используйте тернарный оператор, который будет выглядеть примерно так:
value="#{listing.staffMember != null ? listing.staffMember.name : 'None'}"
Или вы можете использовать c: если тег.
Другие советы
Не могли бы вы попробовать это (у меня всегда работало):
<h:outputText value="#{listing.staffMember.name}"
rendered="#{not empty listing.staffMember}"/>
Не уверен, в чем разница по сравнению с нулевым.
Не связан с StackOverflow