2017-12-18 395 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