How to test against enum values in JSTL EL test?

10,850

It does not work because you used $( instead of ${ to start the expression.

Fix it accordingly:

<c:choose>
    <c:when test="${entry.activity eq 'CREATE'}">
        <td>was created</td>
    </c:when>
    <c:when test="${entry.activity eq 'CREATE_FROM_CAMPAIGN'}">
        <td>was created from campaign</td>
    </c:when>
    <c:otherwise>
        <td>was opened (${entry.activity}) </td>
    </c:otherwise>
</c:choose>
Share:
10,850
Jukka Dahlbom
Author by

Jukka Dahlbom

Updated on June 05, 2022

Comments

  • Jukka Dahlbom
    Jukka Dahlbom almost 2 years

    I have the following block in my JSP, which converts from ENUM values {CREATE, CREATE_FROM_CAMPAIGN, OPEN} into nice, readable status texts.

    For some reason the first test against 'CREATE' works, but the test against the 'CREATE_FROM_CAMPAIGN' does not.

    <c:choose>
        <c:when test="${entry.activity eq 'CREATE'}">
            <td>was created</td>
        </c:when>
        <c:when test="$(entry.activity eq 'CREATE_FROM_CAMPAIGN'}">
            <td>was created from campaign</td>
        </c:when>
        <c:otherwise>
            <td>was opened (${entry.activity}) </td>
        </c:otherwise>
    </c:choose>
    

    One output from this one is as follows:

    was opened (CREATE_FROM_CAMPAIGN)

    was opened (OPEN)

    Why does the second test not work?

  • Jukka Dahlbom
    Jukka Dahlbom over 12 years
    Thank you. Just could not spot that curly bracket despite looking over that code for a long while. I've flagged my post for attention, though, because it does not benefit anyone else.