在 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 文件中编写代码,以便内容以表格格式显示。
最佳答案
使用 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 个独立列表。这将使 final方法变得丑陋
<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);
另见:
关于java - 如何在 JSP 文件中以表格格式显示列表内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8646347/