2013-02-12 66 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