2009-03-02 4 views
3

Im Rahmen einer Datatable in einer Naht JSF Seite null sein kann, eine Spalte die Ausgabe eines Namens erfordert:Wie ein String-Attribut für ein Objekt auszugeben,

<h:outputText value="#{listing.staffMember.name}"/> 

Das Problem ist, dass „Staffmember "kann auf einigen Listings null sein, so dass ich den Fehler:

javax.el.ELException: /xxxxx.xhtml @42,67 value="#{listing.staffMember.name}": Error reading 'name' on type xxxx.model.AgentStaff_$$_javassist_152 

Wenn der Wert null ist, ich will keinen Text gemacht. Ich habe das versucht:

<h:outputText value="#{listing.staffMember.name}" rendered="#{listing.staffMember != null}"/> 

Aber der gleiche Fehler kommt auf.

Wie kann ich eine Eigenschaft für ein Objekt ausgeben, das null sein kann?

Antwort

5

Sie könnten wahrscheinlich use the ternary operator, die so etwas wie aussehen:

value="#{listing.staffMember != null ? listing.staffMember.name : 'None'}" 

Oder Sie könnten die c:if tag verwenden.

3

Könnten Sie versuchen, diese (immer für mich gearbeitet):

<h:outputText value="#{listing.staffMember.name}" 
       rendered="#{not empty listing.staffMember}"/> 

nicht sicher, was der Unterschied zu vergleichen ist auf null.

+0

Der gerenderte Wert hindert den Wertausdruck meines Wissens nicht daran, ausgewertet zu werden. Der Wertausdruck wird ausgewertet. Wenn der Renderausdruck false ist, wird er bei der Wiedergabe der Ansicht nicht in die Ansicht übernommen. – Drew