【问题标题】:How to output a string attribute on an object that may be be null如何在可能为空的对象上输出字符串属性
【发布时间】:2009-03-02 00:56:24
【问题描述】:

作为接缝 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

如果值为 null,我不希望呈现任何文本。我试过这个:

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

但同样的错误出现了。

如何输出可能为 null 的对象的属性?

【问题讨论】:

    标签: java jsf seam


    【解决方案1】:

    你可能可以use the ternary operator,看起来像:

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

    或者您可以使用c:if tag

    【讨论】:

      【解决方案2】:

      你能试试这个(一直对我有用):

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

      不确定与 null 比较有什么区别。

      【讨论】:

      • 据我了解,Rendered 值不会阻止值表达式被评估。对 Value 表达式求值,然后,在渲染视图时,如果渲染表达式为 false,则不会出现在视图中。
      猜你喜欢
      • 1970-01-01
      • 2019-08-28
      • 2015-12-27
      • 2019-09-15
      • 2015-08-15
      • 2012-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多