2013-02-12 22 views
0
顯示從收集的數據

我有一個Java Bean如下如何在JSP

class Account 
    { 
    private long id; 
    private String userName; 
    private String userId; 

    //Getters, Setters for Above 
    } 

    public List<Account> getAccountList() 
    {  
     List<Account> accountList = new ArrayList(); 

     Account account; 

     . 
     . 
     . 
     //db code for fetching data's from database 

     while(rs.next()) 
     {  
     account = new Account(); 

     account.setId(rs.getLong("Id")); 
     account.setUserName(rs.getString("UserName")); 
     account.setUserId(rs.getString("UserId")); 

     accountList.add(account); 
     } 

     return accountList ; 
    } 

我分配我在一個servlet的功能得到了名單,我將其轉發到JSP頁面,在這裏我會顯示帳戶中的用戶列表。

List<Account> accountList = new ArrayList<Account>(); 
accountList = objdbUtil.getAccountList(); 
request.setAttribute("arrUsersList", accountList);   
RequestDispatcher rdst = request.getRequestDispatcher("UserList.jsp"); 
rdst.forward(request, response); 

現在如何在JSP中顯示數據,因爲List包含集合。

我可以直接用下面的代碼

<c:forEach var="arrUsersList" items="${requestScope.arrUsersList}"> 
</c:forEach> 
+0

是的,你可以,只是使VAR ='用戶',因爲它在你的用戶列表中的項目,而不是列表本身。然後打印屬性,你可以使用$ {user.userName} – jonasnas 2013-02-12 14:46:43

+1

而你不需要'requestScope.arrUsersList',只需'arrUsersList'即可。 – 2013-02-12 14:47:23

+0

請注意,您可以簡單地執行:'列出 accountList = objdbUtil.getAccountList();'。您的代碼正在創建一個不必要的對象並將其扔掉。 – GriffeyDog 2013-02-12 15:19:29

回答

1

你在正確的線路。 forEach標記將循環訪問您的Account對象列表。

<c:forEach var="account" items="${requestScope.arrUsersList}"> 
    <c:out value="${account.userName}" /> 
    ... 
</c:forEach> 
+0

非常感謝你的工作 – 2013-02-12 14:54:01