【问题标题】:how to display 3 arraylist's in a jsp?如何在jsp中显示3个arraylist?
【发布时间】:2014-01-31 19:30:58
【问题描述】:

我必须在一个表中显示 3 个数组列表。数组列表是从 servlet 转发的。值 s 来到 jsp。好像我们只显示一个数组列表,prg 正在工作,但显示 3 个数组列表是个问题。

<c:forEach var="auctionDO" items="${auctionDOListServlet}">
<tr div class="odd"> 
    <td style="font-size:14px;"><a href="/myproject/s/PermanentUserAuctionHistoryInner"><c:out value="${auctionDO.auctionName}"/> </a></td>
    <td><c:out value="${auctionDO.endDate}"/>   </td>
    <td><c:out value="${auctionDO.status}"/></td>
    <td><c:out value="${depotDo.depotName}"/></td>
    <td><c:out value="${userAuctionRelDo.bidAmt}"/></td>
</tr>
</c:forEach>

因为在 foreach 中提供了auctionDOListServlet,所以它的显示正确.. depotDO 和 userAuctionRelDO 没有被显示..

如何显示其他 2 个数组列表??

arraylists 是从 servlet 传递的,如下所示

request.setAttribute("auctionDOListServlet", auctionDOListServlet);
request.setAttribute("depotDOListServlet", depotDOListServlet);
request.setAttribute("userAuctionRelDOListServlet", userAuctionRelDOListServlet);

我已将三个列表合并为一个列表

megaList.addAll(auctionDOListServlet);
megaList.addAll(depotDOListServlet);
megaList.addAll(userAuctionRelDOListServlet);

现在我如何为每个显示这个?这行得通吗? 变量的名称是哪里??

   <td><c:out value="${mega.endDate}"/> </td>

现在仓库名称和 bidamt 出现错误,因为它们位于完全不同的 DO.. 怎么办??

【问题讨论】:

  • 好吧,你已经在变量中给出了auctionDO,你为什么要尝试获取depotDo.depotName和userAuctionRelDo.bidAmt...这简直是不合逻辑的。

标签: java jsp servlets arraylist foreach


【解决方案1】:

如何显示其他 2 个数组列表??

正如你所做的那样。 depotDOListServletuserAuctionRelDOListServlet 是两个数组列表,然后您可以使用 &lt;c:forEach&gt;&lt;/c:forEach&gt; 迭代这些列表。

<c:forEach var="auctionDO" items="${auctionDOListServlet}">
 <tr div class="odd"> 
  <td style="font-size:14px;"><a href="/myproject/s/PermanentUserAuctionHistoryInner"><c:out value="${auctionDO.auctionName}"/> </a></td>
  <td><c:out value="${auctionDO.endDate}"/>   </td>
  <td><c:out value="${auctionDO.status}"/></td>
  <c:forEach var="depotDo" items="${depotDOListServlet}">
   <td><c:out value="${depotDo.depotName}"/></td>
  </c:forEach>
  <c:forEach var="userAuctionRelDo" items="${userAuctionRelDOListServlet}">
   <td><c:out value="${userAuctionRelDo.bidAmt}"/></td>
  </c:forEach>
 </tr>
</c:forEach>

记住,对于列表 auctionDOListServlet 中的每个项目,其余两个列表每次都会迭代。

【讨论】:

  • Aniket.. 我实现了你的代码.. 但问题是也只有 2 行显示,但现在显示了 4 行,现在实际上行和列已经搞砸了.. 名称和持续时间列是空的。 status 列显示名称,bid amt 显示为 status 并且出现了 3 个额外的列,其中一列为空,另外 2 列具有投标金额,应该在 2 个单独的行中..
  • @user3060890 :是的,这就是我在回答的最后一行告诉你的。我不知道确切的列表内容,但您可以创建一个将所有三个组合在一起的列表并显示。
  • Aniket.. 我如何组合基于 3 个不同数据对象的 3 个列表??
  • @user3060890 :创建另一个类,其成员为 3 个数组列表或成员作为要在 JSP 上显示的字段。并创建新创建的类的数组列表并传递给 JSP。你完成了。
  • aniket 谢谢.. 但另一个问题.. 我已经编辑了问题字段.. 你如何显示一个巨型列表?我没有得到页面本身...
【解决方案2】:

您正在迭代一个特定的数组。这对其他数组没有影响。其他数组没有被迭代。

我会创建一个容器对象,将这三个实体放在一起,然后将它们放在一个列表中。

或者你可以 for 循环并在列表中调用 getValueAt(anIntValue)。这样您就可以获得每个列表的正确值。

【讨论】:

  • 嗨 Oliver.. 你能在我的 jsp 代码的上下文中给出一个 for 循环的例子吗?
猜你喜欢
  • 2014-02-17
  • 2015-04-02
  • 2012-08-24
  • 2020-11-12
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
  • 2016-08-23
  • 1970-01-01
相关资源
最近更新 更多