Enum à l'intérieur d'un JSP [duplicate]
Question
Cette question a déjà une réponse ici:
- Comment référencer des constantes dans EL? 12 réponses
Existe-t-il un moyen d'utiliser les valeurs Enum dans une JSP sans utiliser de scriptlet.
par exemple.
package com.example;
public enum Direction {
ASC,
DESC
}
donc dans le JSP, je veux faire quelque chose comme ça
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
La solution
Vous pouvez implémenter le texte Web pour une direction dans l'énumération en tant que champ:
<%@ page import="com.example.Direction" %>
...
<p>Direction is <%=foo.direction.getFriendlyName()%></p>
<% if (foo.direction == Direction.ASC) { %>
<p>That means you're going to heaven!</p>
<% } %>
mais qui mélange la vue et le modèle, bien que pour des utilisations simples, il puisse être indépendant de la vue ("Ascending", "Descending", etc.).
À moins que vous n'aimiez pas insérer du code Java droit dans vos pages JSP, même lorsqu'il est utilisé pour des tâches de base telles que les comparaisons.
Autres conseils
Vous pouvez simplement vérifier la valeur enum en tant que chaîne:
<c:if test="${foo.direction == 'ASC'}">...
Cela peut se faire comme ça, je suppose
<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>
l'avantage est quand on refactor il renommera ici aussi