Iteration über Enum-Konstanten in JSP
Habe ich ein Enum wie diese
package com.example;
public enum CoverageEnum {
COUNTRY,
REGIONAL,
COUNTY
}
Ich würde gerne Iteration über diese Konstanten in JSP-ohne Verwendung scriptlet-code. Ich weiß, ich kann es mit scriptlet-code wie folgt:
<c:forEach var="type" items="<%= com.example.CoverageEnum.values() %>">
${type}
</c:forEach>
Aber kann ich um die gleiche Sache, ohne scriptlets?
Cheers,
Don
InformationsquelleAutor Dónal | 2008-09-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn man mit Spring MVC, erreichen Sie Ihr Ziel mit den folgenden syntaktischen Segen:
wo Sie Ihr Modell Attribut (ie, bean/data entity zu füllen) heißt cluster und Sie haben bereits besiedelten das Modell mit einer enum-Werte-array namens clusterTypes. Die
<form:error>
Teil ist sehr optional.In Spring MVC land, können Sie auch automatisch ausfüllen
clusterTypes
in Ihr Modell wie diesemInformationsquelleAutor Ted Pennings
Wenn Sie Tag-Bibliotheken könnten Sie Kapseln Sie den code in einer EL-Funktion. Also das öffnende tag werden würde:
EDIT: In Reaktion auf die Diskussion über eine Implementierung, die funktionieren würde für mehrere Enum-Typen nur skizziert:
Es kann gut sein, aber ich kenne es, hatte gerade einen gehen: public static <T extends Enum<T>> Enum<T>[] getValues(Klasse<T> klass) { try { Method m = klass.getMethod("Werte", null); Object obj = m.invoke(null, null); return (Enum<T>[])obj; } catch(Exception ex) { return null; } }
Schöne Arbeit. Junge, junge, ist, dass der parameter type <T extends Enum<T>> hässlich! Ich bin kritisieren die Java-generics Implementierung hier, nicht Ihr code. Ich habe gezwungen worden, in ähnliche Greuel mich. Vielen Dank für den code.
warum nicht einfach
klass.getEnumConstants()
?InformationsquelleAutor Garth Gilmour