JSF:h:outputText; 当值为空字符串时如何显示短划线?

Rob*_*ume 22 jsf el

我正在使用h:outputText标签来显示只读数据.例如:

<h:outputText value="Phone Number:" />
<h:outputText value="#{userHandler.user.phoneNumber}" />
Run Code Online (Sandbox Code Playgroud)

当"phoneNumber"是空字符串或null时,我想显示短划线" - "作为值.

有没有简单的方法可以使用表达式语言或其他东西?

顺便说一句,我考虑过向User类添加方法,比如可以在内部进行检查的getPhoneNumberDisplayText(),但是因为它是一个视图问题,所以我宁愿将代码保存在JSF页面中.

Boz*_*zho 51

<h:outputText value="#{userHandler.user.phoneNumber != null 
    ? userHandler.user.phoneNumber : '-'}" />
Run Code Online (Sandbox Code Playgroud)

或者,你可以做一个新的outputText:

<h:outputText rendered="#{userHandler.user.phoneNumber == null}" value="-" />
Run Code Online (Sandbox Code Playgroud)

  • 只需使用`empty`.涵盖"null"和空字符串.`#{empty foo.property?' - ':foo.property}`或其他方式,`#{not empty foo.property?foo.property:' - '}`. (51认同)