来自 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 &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt; 和 jarfiles,因为这个小测试代码正在工作

    <c:out value="this is a jstl Test"></c:out>

我不确定应该写 $i.name 还是 $i.getName() ,但两个版本都不起作用。

标签是否有问题或其他问题?我在 *** 或其他地方找不到任何建议。 谢谢您的帮助。问候马克斯

【问题讨论】:

【参考方案1】:

EL/JSTL 仅适用于 scoped 值。您可以将ProjektDB.getAllProjekte()结果绑定到requestsession到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

jstl foreach标签

JSTL forEach标签 无法读取问题

jsp:jstl标签forTokens

JSTL--JSTL表达式:c:forEach,varstatus/begin end/循环控制标签--drp215

jstl c:forEach