2009-03-02 53 views
3

如在接縫JSF頁面數據表的一部分,一個列都需要一個名稱的輸出:如何在物體上輸出的字符串的屬性,可以是爲空

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

的問題是,「staffMember 「在某些列表中可能爲空,所以我得到錯誤:

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}"/> 

但是同樣的錯誤出現了。

如何在可能爲空的對象上輸出屬性?

回答

5

你很可能use the ternary operator,這看起來是這樣的:

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

或者你可以使用c:if tag

3

你能試試這個(總是爲我工作):

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

不知道的區別是比較空的。

+0

據我的理解,渲染值不會停止評估值表達式。 Value表達式會被計算,然後,當渲染視圖的時候,如果渲染表達式爲false,那麼它不會將其顯示到視圖中。 – Drew 2009-03-12 01:25:31

相關問題