来自DAO类的JSTL foreach ArrayList对象将不起作用

时间:2012-10-29 23:23:30

标签: jsp foreach arraylist jstl dao

您好我为不同项目的列表输出编写了以下代码。

<%
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()},但两个版本都不起作用。

标签或其他东西有问题吗?我在StackOverFlow或其他地方找不到任何建议。
谢谢您的帮助。问候Max

1 个答案:

答案 0 :(得分:2)

EL / JSTL仅适用于作用域值。您可以将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>