来自 DAO 类的 JSTL foreach ArrayList 对象不起作用
Posted
技术标签:
【中文标题】来自 DAO 类的 JSTL foreach ArrayList 对象不起作用【英文标题】:JSTL foreach ArrayList Object from DAO Class won't work 【发布时间】:2012-10-19 07:50:03 【问题描述】:您好,我为不同项目的列表输出编写了以下代码。
<%
List<ProjektDAO> projektListe = new ArrayList<ProjektDAO>();
projektListe = ProjektDB.getAllProjekte();
for(ProjektDAO i : projektListe)
%> Titel: <%= i.getName() %><br>
<%
%>
这里一切正常。
但我的问题是使用 jstl 完成此操作
我写了以下代码:
<c:forEach items="$projektListe" var="i">
<p>Titel:</p>
<c:out value="$i.name"></c:out> <br>
</c:forEach>
我认为这不是一般的 jstl 错误,因为我包含了 taglib
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
和 jarfiles,因为这个小测试代码正在工作
<c:out value="this is a jstl Test"></c:out>
我不确定应该写 $i.name 还是 $i.getName() ,但两个版本都不起作用。
标签是否有问题或其他问题?我在 *** 或其他地方找不到任何建议。 谢谢您的帮助。问候马克斯
【问题讨论】:
【参考方案1】:EL/JSTL 仅适用于 scoped 值。您可以将ProjektDB.getAllProjekte()
结果绑定到request
或session
到Servlet的服务方法(doGet/doPost)中。
在servlet中,
request.setAttribute("projektListe",ProjektDB.getAllProjekte());
在 JSP 中,
<c:forEach items="$projektListe" var="i">
<p>Titel:</p>
<c:out value="$i.name"></c:out> <br>
</c:forEach>
【讨论】:
谢谢,我不知道我必须在后台使用servlet。以上是关于来自 DAO 类的 JSTL foreach ArrayList 对象不起作用的主要内容,如果未能解决你的问题,请参考以下文章
JSTL--JSTL表达式:c:forEach--drp215