Es gibt keine id
Eigenschaft für String
, so müssen Sie Ihre jstl ändern, wie unten dargestellt:
<c:forEach items="list" var="element">
<c:out value="${element}"/>
</c:forEach>
Auch wenn Sie c:forEach
verwenden, können Sie die Liste iterieren, so Mit ${element}
erhalten Sie die Elemente in der list
.
Ein weiterer Punkt ist, dass wenn die list
bereits in der Anfrage Umfang vom Servlet/Controller eingestellt ist, müssen Sie Scriptlets nicht verwenden, wie oben gezeigt (das heißt, können Sie direkt die list
wie items="list"
zugreifen).
Wenn Sie die index
des list
zugreifen möchten, können Sie varStatus
verwenden, wie unten dargestellt:
<c:forEach items="list" var="element" varStatus="myList">
<c:out value="${myList.index}"/>
</c:forEach>
Scriptlets in Ihrer JSP-Seiten zu verwenden ist keine bewährte Methode, so schlage ich vor, sie nicht zu verwenden, Weitere Informationen zu JSP-Best Practices finden Sie unter here. Ich habe den entscheidenden Punkt unten aus dem Link hinzugefügt:
Bits von Java-Code einbetten (oder Scriptlets) in HTML-Dokumenten können nicht geeignet sein für all HTML-Content-Entwickler, vielleicht weil sie nicht wissen, die Sprache Java und interessiert sich nicht für seine Syntax.
Veröffentlichen Sie die vollständige Trace des Ausnahme-Stacks, und beenden Sie die Verwendung von Scriptlets. Die JSTL verwendet die JSP EL, keine Scriptlets. Vergessen Sie, dass Skriptlets existieren. Sie sollten nicht für Jahre und Jahre verwendet werden. –
Warum initialisierst du deine Variable auch mit einer neuen leeren Liste, kurz bevor sie initialisiert wird wieder mit der Liste in der Anfrage gespeichert? –