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

1

26

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.

Roca answered 24/1, 2011 at 22:3 Comment(0)
C
56
<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="-" />
Comeuppance answered 24/1, 2011 at 22:45 Comment(2)
Just use empty. Covers both null and empty string. #{empty foo.property ? '-' : foo.property} or other way, #{not empty foo.property ? foo.property : '-'}.Bluefield
@Bluefield this doesn't work for set method Illegal Syntax for Set Operation. is there solution for that?Gastrin

© 2022 - 2024 — McMap. All rights reserved.