2011-03-03 13 views
8

Mi enumeración de Java se parece a esto:JSP: el acceso de enumeración dentro de las etiquetas JSP EL

public enum EmailType { HOME, WORK, MOBILE, CUSTOMER_SERVICE, OTHER } 

En JSP, que estoy tratando de hacer algo, como a continuación, que no está funcionando.

<c:choose> 
      <c:when test="${email.type == EmailType.HOME}">(Home)</c:when> 
      <c:when test="${email.type == EmailType.WORK}">(Work)</c:when> 
</c:choose> 

Tras Google, encontré estos enlaces: Enum inside a JSP. Pero, quiero evitar el uso de scriplets en mi JSP. ¿Cómo puedo acceder a Java enum dentro de la etiqueta EL y hacer la comparación? Por favor ayuda.

+3

duplicados de [valor de enumeración En JSP EL siempre vacío] (http://stackoverflow.com/questions/4606673/in-jsp-el-enum-value-always-empty). Solo trátales como cuerdas. – BalusC

+0

Siento que no está duplicado por las siguientes razones: enum EmailType está escrito en un archivo java independiente (EmailType.java), que no contiene ningún método. – Arjun

+0

Mi entidad de correo electrónico se ve así: correo electrónico de clase pública {... Tipo de tipo de correo electrónico; ....} – Arjun

Respuesta

7

Cuando se serializa una enumeración, se convierte en una cadena. Así que solo usa una comparación de cuerdas.

<c:choose> 
      <c:when test="${email.type == 'HOME'}">(Home)</c:when> 
      <c:when test="${email.type == 'WORK'}">(Work)</c:when> 
</c:choose> 
Cuestiones relacionadas