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.

1 Answer 1

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="-" /> 
Sign up to request clarification or add additional context in comments.

2 Comments

Just use empty. Covers both null and empty string. #{empty foo.property ? '-' : foo.property} or other way, #{not empty foo.property ? foo.property : '-'}.
@BalusC this doesn't work for set method Illegal Syntax for Set Operation. is there solution for that?