JSF: h:outputText; how to show a dash when the value is empty string?

user550738 picture user550738 · Jan 24, 2011 · Viewed 57.2k times · Source

I'm using h:outputText tags to display readonly data. Ex:

<h:outputText value="Phone Number:" />
<h:outputText value="#{userHandler.user.phoneNumber}" />

When "phoneNumber" is an empty string or a null, I want to display a dash "-" as the value.

Is there any easy way to do this maybe with expression language or something?

BTW, I thought about adding methods to the User class like getPhoneNumberDisplayText() that could do the check internally, but I since it's a view issue, I'd rather keep the code in the JSF page.

Answer

Bozho picture Bozho · Jan 24, 2011
<h:outputText value="#{userHandler.user.phoneNumber != null 
    ? userHandler.user.phoneNumber : '-'}" />

Or, you could make a new outputText:

<h:outputText rendered="#{userHandler.user.phoneNumber == null}" value="-" />