2013-01-04 94 views
3

我在運行ArrayList項目並在JSP文件中顯示它們時出現問題。使用JSTL forEach遍歷ArrayList項目

這裏是我的豆:

public class UsersList { 
    private ArrayList<UserDetails> users = new ArrayList<UserDetails>(); 

    public ArrayList getUsers(){ 
     return users; 
    } 

    public void setUsers(ArrayList<UserDetails> users){ 
     this.users = users; 
    } 
} 

用戶包含的UserDetails這簡直是類3字符串屬性:電子郵件,用戶名,密碼

現在我想在表格中顯示的細節..首先在index.jsp中我有這些命令:

  UsersList bean = new UsersList(); 
      bean.setUsers(db.getUsersList()); // getting all user deatils from database into the list 
      session.setAttribute("bean", bean); 

      RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/adminPage.jsp"); 
      dispatcher.forward(request, response); 

而現在adminPage.jsp時,我應該顯示一個包含用戶的詳細信息,其無顯示錶。這裏是代碼:

<c:forEach var="current" items="${bean.users}" > 
<tr> 
    <td>${current.email}</td> 
    <td>${current.username}</td> 
    <td><input type="checkbox" name="delete" value="${current.email}"</td> 
</tr> 
</c:forEach> 

任何想法這裏有什麼問題??謝謝。

+0

我看不到任何錯誤..我使用的是NetBeans,但我不知道如何調試核心標記的東西像forEach ..沒有錯誤發生,表是空的,而不是包含的細節 – etaiso

+0

也許它的發生是因爲即時通訊缺少web-xml文件? – etaiso

+1

您是否在JSP上定義了taglib? '<%@ taglib uri =「http://java.sun.com/jsp/jstl/core」prefix =「c」%>' –

回答

3

檢查您的前綴「c」是否指向正確的標籤庫。

應該

「http://java.sun.com/jsp/jstl/core」

如果不工作,檢查是否存在錯誤的邏輯填充數據。

0

由於您將對象添加到會話中,您需要從EL中的sessionScope訪問它。

<c:forEach var="current" items="${sessionScope.bean.users}" > 
<tr> 
    <td>${current.email}</td> 
    <td>${current.username}</td> 
    <td><input type="checkbox" name="delete" value="${current.email}"</td> 
</tr> 
</c:forEach> 
+0

它不工作..仍然沒有.. 也許我需要導入的東西? – etaiso

+0

您確定userdetails列表包含詳細信息嗎?在調試中設置斷點以檢查列表。 –

+0

這是我檢查的第一件事。它包含的細節。也許它的聲明如下:UsersList bean = new UsersList();在index.jsp文件的嘗試範圍中使用 ? – etaiso