J'ai une liste de conants déclarée dans Java à l'aide de type ENum, qui doit apparaître dans un JSP.
Java Enum Déclaration: Où: P> <select name="typeAffichage" id="typeAffichage">
<c:choose>
<c:when test="${catDecla ne null}">
<option
value="<%=catDecla.getCatDecla().getSTypeAffichage()%>"
selected="selected"><%=catDecla.getCatDecla().getSTypeAffichage()%></option>
</c:when>
</c:choose>
<%List<String> list = ConstanteADMD.LIST_TYPE_AFFICHAGE.getNames();
for(String test : list) {
%>
<option value="<%=test%>"><%=test%></option>
<%}%>
</select>
5 Réponses :
L'EL que vous utilisez dans l'attribut Éléments sur C: Veach tente d'appeler une méthode statique sur vos types d'énumjet. Je crois que El ne prend en charge que des appels sur des méthodes d'instance. P>
Vous pouvez créer une méthode qui renvoie Supprimer le Enum.values () code> si vous ne pouvez pas utiliser les valeurs directement dans votre expression EL.
getNames () code> de l'intérieur de votre enum et utilisez une méthode comme celle-ci aussi ailleurs dans votre code. P>
public List<LIST_TYPE_AFFICHAGE> getNames() {
return new ArrayList<LIST_TYPE_AFFICHAGE>(Arrays.asList(LIST_TYPE_AFFICHAGE.values()));
}
La méthode des valeurs fonctionne bien, mon erreur. En effet, le problème était que je n'ai pas mis ma liste dans la pompe de mon JSP.
<% pageContext.setAttribute("monEnum", ConstanteADMD.ListTypeAffichage.values()); %> ... <c:forEach var="entry" items="${monEnum}"> <option>${entry.type}</option> </c:forEach>
Une autre option consiste à utiliser un
<c:forEach items="${enumValues}" var="enumValue">
...
</c:forEach>
Je n'avais pas besoin de faire le Un autre moyen simple peut être: strong> Vous devez importer ceci: em> p>
votes
Dupliqué possible de itérant sur les constantes d'Enum dans JSP