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 answers

Welche 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.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage