【问题标题】:How to display data from collections in JSP如何在 JSP 中显示集合中的数据
【发布时间】:2013-02-12 14:40:15
【问题描述】:

我有一个如下的 Java Bean

  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 页面,在该页面中我将显示 Account 中的用户列表。

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

现在如何在 JSP 中显示数据,因为列表中包含集合。

我可以直接使用下面的代码吗

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

【问题讨论】:

  • 是的,您可以,只需设置 var='user' 因为它是您的用户列表中的一个项目,而不是列表本身。然后要打印属性,您可以使用 ${user.userName}
  • 而且您不需要requestScope.arrUsersList,只需arrUsersList 就足够了。
  • 请注意,您可以简单地执行以下操作:List&lt;Account&gt; accountList = objdbUtil.getAccountList();。您的代码正在创建一个不必要的对象并将其丢弃。

标签: java jsp jstl


【解决方案1】:

你在正确的路线上。 forEach 标记将遍历您的 Account 对象列表。

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

【讨论】:

  • @NickJ 我可以使用 requestScope.get(0).getArrUserList(); ?在jsp里面?
猜你喜欢
  • 2011-07-11
  • 1970-01-01
  • 2015-09-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-22
  • 2014-11-07
  • 1970-01-01
相关资源
最近更新 更多