一尘不染

如何在JSP文件中以表格格式显示列表内容?

jsp

在Action.java文件中,正在使用以下代码。

request.setAttribute("TAREWEIGHT", tareWeightList);
    request.setAttribute("BARCODE", barcodeList);
return (mapping.findForward(target));

tareWeightList和BarcodeList实际上包含几个值。将列表值设置为属性后,java文件会将内容转发到JSP文件。

在JSP文件中,我可以使用下面的行获取内容,

<%=request.getAttribute("TAREWEIGHT")%>
<%=request.getAttribute("BARCODE") %>

我的要求是,该列表的内容应以表格格式显示。

第一列中的条形码值和第二列中的对应的皮重值。

向我提出一个在JSP文件中编写代码的想法,以便使内容以列表格式显示。


阅读 341

收藏
2020-06-08

共1个答案

一尘不染

使用HTML <table>元素表示HTML中的表格。使用JSTL <c:forEach>遍历JSP中的列表。

例如

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<table>
  <c:forEach items="${list}" var="item">
    <tr>
      <td><c:out value="${item}" /></td>
    </tr>
  </c:forEach>
</table>

您的代码中只有一个设计缺陷。您已将相关数据划分为2个独立的列表。最终的方法会像

<table>
  <c:forEach items="${TAREWEIGHT}" var="tareWeight" varStatus="loop">
    <c:set var="barCode" value="${BARCODE[loop.index]}" />
    <tr>
      <td><c:out value="${tareWeight}" /></td>
      <td><c:out value="${barCode}" /></td>
    </tr>
  </c:forEach>
</table>

我建议创建一个自定义类以将相关数据存储在一起。例如

public class Product {

    private BigDecimal tareWeight;
    private String barCode;

    // Add/autogenerate getters/setters/equals/hashcode and other boilerplate.
}

因此您最终得到一个List<Product>可以表示为的:

<table>
  <c:forEach items="${products}" var="product">
    <tr>
      <td><c:out value="${product.tareWeight}" /></td>
      <td><c:out value="${product.barCode}" /></td>
    </tr>
  </c:forEach>
</table>

将其放入请求范围后,如下所示:

request.setAttribute("products", products);
2020-06-08