我将要打印从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>
<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页面-但现在唯一的问题是根据属性在表中打印它。
答案 0 :(得分:-1)
<td>${Product.getProductId()}</td>
仅在不使用c:out的情况下使用它。 有时您写产品而不是产品