2017-12-18 398 views
0

我传递一个列表从servlet到JSP如下:JSP迭代不显示

<c:forEach items="${sessionScope.messageList}" var="msg"> 
    <tr> 
     <td>Agent ID: <c:out value="${msg.getID()}"/></td> 
    </tr> 
</c:forEach> 

的Web应用程序:

Agent agent = (Agent) request.getSession().getAttribute("agent"); 

List<Message> messageList = agent.mailbox.getMessages(); 
request.setAttribute("messageList", messageList); 

request.getRequestDispatcher("/message.jsp").forward(request, response); 

然后,我在JSP文件如下迭代它执行和工作正常,没有错误等......但是,列表的输出没有被显示。

+0

查看jsp页面顶部的这条线''%@ page session =“true”%>' –

+1

看看这个pls。它可以解决你的问题https://stackoverflow.com/questions/26652712/foreach-loop-not-displaying-any-output-in-jsp – javatar

+0

@ArvindKatte是行存在。 – Axel

回答

2

我需要安装JSTL才能使用代码。

  1. here下载Jar文件,并将它们放在WEB-INF/lib文件夹中。
  2. 如果您使用maven添加依赖项。
  3. 增加您的JSP页面顶部的标签库:<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
  4. 重建项目

现在你可以使用JSTL在JSP。

0

您正在设置请求属性,但在sessionScope.messageList上迭代。

使用requestScope.messageList或简单地messageList

+0

尝试了更改,但仍然是相同的问题 – Axel

+0

然后可能意味着消息列表为空。使用你的调试器。 –

+0

它不是空的,我调试了servlet并且messageList不是空的。 – Axel