0

我有一个 JSP 页面,其中显示了属于特定类别的所有产品。问题是,根据我是循环“td”还是“tr”,它们最终要么垂直显示,要么水平显示。我想在网格中显示它们,其中 3 个产品在第 1 行,另外 3 个在第 2 行,依此类推。关于如何实现这一点的任何想法?

产品控制器.java

List<Product> productsLst = MasterDao.getAllProductsByCategory(new Integer(categoryId));

产品.jsp

<table>
    <tr>
    <%
        for (Product p : productsLst) {
    %>
    <td align="center">
        <a href="product.jsp?productId=<%= p.getProductId() %>"><img src="../images/<%= p.getImage()%>" class="product-grid-img"/></a>
        <br/><div id="product-name"><%= p.getName()%></div>
        <br/><div id="money">$&nbsp;<%= p.getListPrice()%></div>
    </td>
    <%
        }
    %>
    </tr>
</table>
4

3 回答 3

0

只需使用计数器,如果您有 3 个产品,请关闭 tr 并打开一个新 tr

于 2012-09-19T16:06:40.457 回答
0

使用 Guava 的Lists.partition()方法:

List<List<Product>> rows = Lists.partition(productList);
page.setAttribute("rows", rows);
...
<c:forEach var="row" items="rows">
    <tr>
        <c:forEach var="product" items="row">
            <td> ... details of the product ... </td>
        </c:forEach>
    </tr>
</c:forEach>
于 2012-09-19T16:12:52.587 回答
0

已经在这个帖子里回答了

<table>
<s:iterator value="productList" status="status">
        <s:if test="#status.index %4 == 0">
            <tr>
        </s:if>

                <td>
                    <img src="../product/image?imageID=<s:property value="productID"/>&type=thumbnail" />
                </td>
         <s:if test="#status.index %4 == 0">
            </tr>
         </s:if>
</s:iterator>
<table>
于 2012-09-19T16:14:13.383 回答