2011-08-29 16 views
5

Tengo el siguiente bloque en mi JSP, que convierte los valores ENUM {CREATE, CREATE_FROM_CAMPAIGN, OPEN} en textos de estado agradables y legibles.¿Cómo probar los valores enum en la prueba JSTL EL?

Por alguna razón la primera prueba contra 'CREATE' obras, pero la prueba en contra de la 'CREATE_FROM_CAMPAIGN' no lo hace.

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

Una salida de éste es la siguiente:

fue abierto (CREATE_FROM_CAMPAIGN)

fue abierto (OPEN)

¿Por qué la segunda prueba no funciona?

Respuesta

9

No funciona porque usaste $( en lugar de ${ para iniciar la expresión.

Fix en consecuencia:

<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

Gracias. Simplemente no podía ver ese parche rizado a pesar de revisar ese código durante mucho tiempo. Sin embargo, he marcado mi publicación para llamar la atención porque no beneficia a nadie más. –