Как вывести строковый атрибут объекта, который может иметь значение null

StackOverflow https://stackoverflow.com/questions/600945

  •  03-07-2019
  •  | 
  •  

Вопрос

Как часть 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}"/>

Не уверен, в чем разница по сравнению с нулевым.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top