Ich habe eine Bean, die die Ergebnisse enthält. Ich muss JSTL verwenden, um darüber zu iterieren und die Ergebnisse zu präsentieren. Hier ist die Bohne:
%Vor%Hier ist der Handler, der die Bean auf die JSP setzen wird:
%Vor%Ich habe versucht, es wie folgt anzuzeigen:
%Vor%Aber es gab die folgende Ausnahme:
verursacht durch: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Ich weiß nicht, wie ich über die angegebenen "Items" in & lt; forEach & gt;
iterieren kann
Wenn ich die Ergebnisse auf meiner Handler-Seite wie folgt protokolliere:
%Vor%Die Protokollierung scheint auf dem Server gut zu sein.
Erstellt von: javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Ich weiß nicht, wie ich über die angegebenen "Elemente" in
iterieren soll<forEach>
Das passiert, wenn <c:forEach items>
nicht auf ein gültiges Objekt verweist, über das es iterieren kann. Das Objekt sollte ein Object[]
(ein einfaches Array), ein Collection
sein. , Map
, %Co_de% , Iterator
oder Enumeration
(siehe auch Quellcode ). Alles andere kann nicht von String
iteriert werden. Ihre <c:forEach>
-Klasse ist keine Instanz eines der oben genannten Typen, daher wird sie fehlschlagen.
Ihre DetResults
Klasse sieht nicht richtig aus. Es sieht im Grunde aus wie eine Gott-Bohne mit einer Sammlung aller Eigenschaften mehrerer einzelner Entitäten. Das ist nicht richtig. Eine Bean-Klasse sollte höchstens eine Entität darstellen. Schreiben Sie Ihre DetResults
-Klasse neu, so dass Sie im Grunde mit einer vollständigen Sammlung von Javabeans enden:
, damit Sie wie folgt darauf zugreifen können:
%Vor% Wenn Sie wirklich darauf bestehen, Ihre DetResults
-Bohne unverändert zu lassen, können Sie folgendermaßen darauf zugreifen:
Unrelated zu dem konkreten Problem, das Attribut DetResults
ist nicht richtig. Sie sollten ihm nicht den gleichen Namen geben wie einem vorhandenen Objekt im Bereich. Es würde nur zusammenstoßen. Aber das ist Thema für eine neue Frage, wenn Sie die Fehlermeldung nicht interpretieren können.