在JSP中打印列表对象

时间:2020-06-02 06:06:04

标签: java jsp jstl

我将要打印从Servlet传递过来的JSP表中的对象,但是由于某种原因,它们无法打印。

我已经确认servlet实际上确实将数据保存到列表中,但是我还没有确认列表是否已成功传递给JSP,或者它是否在打印对象时出错。

这是我的JSP页面代码(listProduct是从Servlet传递的列表):

<% List newList = (List)session.getAttribute("listProduct");%>

        <c:forEach  items="${listProduct}" var="Product">
            <tr>
                <td><c:out value="${Product.productId}" /></td>
                <td><c:out value="${product.productType}" /></td>
                <td><c:out value="${product.productPrice}" /></td>
                <td><c:out value="${product.vendorName}" /></td>
                <td><c:out value="${product.productName}" /></td>
                <td><c:out value="${product.productDescription}" /></td>
                <td><c:out value="${product.stockLevel}" /></td>
                <td><c:out value="action" /></td>
                <td>
                    <a href="/edit?id=<c:out value='${product.productId}' />">Edit</a>
                    &nbsp;&nbsp;&nbsp;&nbsp;
                    <a href="/delete?id=<c:out value='${product.prodictId}' />">Delete</a>                     
                </td>
            </tr>
        </c:forEach>

我的JSP中的“ newList”也未使用,但是其他教程也有使用,即使当我尝试对表使用newList时,它也没有注册,并且仍然说newList未使用。

任何指针或帮助将不胜感激。

编辑:更多信息(Servlet代码)

我已经包含了我的servlet代码,它可以创建列表并将其发送到jsp页面-以防万一问题出在那儿。

    List<Product> listProduct = db.listProducts();

            request.setAttribute("listProduct", listProduct);
            RequestDispatcher requestDispatcher = request.getRequestDispatcher("displayProduct.jsp");
            requestDispatcher.forward(request, response);

** db是DAO。 编辑2 DAO代码:此代码是向servlet提供数组列表的方法。

 public List<Product> listProducts() throws SQLException {
        List<Product> listProduct = new ArrayList<>();

        String sql = "SELECT * FROM PRODUCT";

        ResultSet rs = st.executeQuery(sql);

        while (rs.next()) {
            int productId = rs.getInt("productId");
            double productPrice = rs.getDouble("PRODUCTPRICE");
            String productType = rs.getString("productType");
            String vendorName = rs.getString("vendorName");
            String productName = rs.getString("productName");
            String productDescription = rs.getString("productDescription");
            int stockLevel = rs.getInt("stockLevel");

            Product product = new Product(productId, productPrice, productType, vendorName, productName, productDescription, stockLevel);
            listProduct.add(product);

        }

        return listProduct;

另一个编辑! : 我确认问题出在JSP表部分中的编码上,因为arraylist已成功发送到JSP页面-但现在唯一的问题是根据属性在表中打印它。

1 个答案:

答案 0 :(得分:-1)

 <td>${Product.getProductId()}</td>

仅在不使用c:out的情况下使用它。 有时您写产品而不是产品