2011-08-29 4 views
5

Ho il seguente blocco nel mio JSP, che converte dai valori ENUM {CREATE, CREATE_FROM_CAMPAIGN, OPEN} in buoni testi di stato leggibili.Come testare i valori enum nel test EL JSTL?

Per qualche motivo il primo test contro 'CREATE' funziona, ma il test contro lo 'CREATE_FROM_CAMPAIGN' non lo fa.

<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> 

Un'uscita da questa è la seguente:

è stato aperto (CREATE_FROM_CAMPAIGN)

è stato aperto (OPEN)

Perché il secondo test non funziona?

risposta

9

Non funziona perché è stato utilizzato $( anziché ${ per avviare l'espressione.

Fix di conseguenza:

<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> 
+0

Grazie. Solo non riuscivo a individuare quella parentesi graffa nonostante si guardasse oltre quel codice per molto tempo. Ho contrassegnato il mio post per attenzione, però, perché non giova a nessun altro. –