Search code examples
stringjspjstlel

Evaluate empty or null JSTL c tags


How can I validate if a String is null or empty using the c tags of JSTL?

I have a variable named var1 and I can display it, but I want to add a comparator to validate it.

<c:out value="${var1}" />

I want to validate when it is null or empty (my values are string type).


Solution

  • How can I validate if a String is null or empty using the c tags of JSTL?

    You can use the empty keyword in a <c:if> for this:

    <c:if test="${empty var1}">
        var1 is empty or null.
    </c:if>
    <c:if test="${not empty var1}">
        var1 is NOT empty or null.
    </c:if>
    

    Or the <c:choose>:

    <c:choose>
        <c:when test="${empty var1}">
            var1 is empty or null.
        </c:when>
        <c:otherwise>
            var1 is NOT empty or null.
        </c:otherwise>
    </c:choose>
    

    Or if you don't need to conditionally render a bunch of tags and thus you could only check it inside a tag attribute, then you can use the EL conditional operator ${condition? valueIfTrue : valueIfFalse}:

    <c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />
    

    To learn more about those ${} things (the Expression Language, which is a separate subject from JSTL), check here.

    See also: