JSTL - Mit forEach über eine benutzerdefinierte Klasse iterieren [duplizieren]
Diese Frage hat hier bereits eine Antwort:
javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Ich weiß nicht, wie ich gelieferte "Elemente" in <forEach> durchlaufen soll 3 answersWelche Methoden muss ich einer benutzerdefinierten Java-Klasse hinzufügen, damit ich die Elemente in einem ihrer Mitglieder durchlaufen kann? Ich konnte keine Angaben zur tatsächlichen Funktionsweise des JSTL-Tags forEach finden, daher bin ich mir nicht sicher, wie ich das implementieren soll.
Zum Beispiel, wenn ich eine generische "ProjectSet" -Klasse erstellt habe und das folgende Markup in der JSP-Ansicht verwenden möchte:
<c:forEach items="${projectset}" var="project">
...
</c:forEach>
Basic Klassendatei:
public class ProjectSet {
private ArrayList<Project> projects;
public ProjectSet() {
this.projects = new ArrayList<Project>();
}
// .. iteration methods ??
}
Gibt es eine Schnittstelle, die ich implementieren muss, wie PHP'sArrayAccess
oderIterator
damit das funktioniert?
Edit: Ohne direkten Zugriff auf die ArrayList selbst, da ich wahrscheinlich eine Art Set-Klasse mit Generika verwenden werde und die JSP-Ansicht nichts über die Funktionsweise der Klasse wissen sollte.