页面中用foreach标签嵌套的那个表格怎么都显示不出来呢?请路过的高手帮我看看。
页面代码
<%@ page language="java" import="java.util.*,com.company.dao.impl.*,com.company.entity.*" pageEncoding="utf-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="tag"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>商品列表页面</title>
</head>
<body>
<table width="974" height="150" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td colspan="2"><jsp:include page="top.jsp" /></td>
  </tr>
  <tr>
    <td width="138"><jsp:include page="left.jsp" /></td>
    <td width="626">
    12315635<table width="626" height="64" border="1" align="center" cellpadding="0" cellspacing="0">
              <!-- 产品展示开始 -->
  <jsp:useBean id="getProduct" class="com.company.dao.impl.ProductDaoImpl" />
  <!-- 从数据库中取出产品信息赋给products变量,作用域:session -->
  <tag:set var="products" value="${getProducts.products}" scope="session" />
  <!-- 迭代循环,依次从foods变量中取出餐品,在页面中用EL显示该餐品各项信息 -->
  <tag:forEach var="currentproduct" items="${sessionScope.products}" >
      <tr>
        <td width="99" rowspan="2"><a 
            href="detailProduct.jsp?productID=${currentproduct.productID}"
target=_blank><IMG height=50 alt=点击图片查看内容
src="images/${currentproduct.picture}" width=50 border=0></A></td>
        <td width="44" rowspan="2">0</td>
        <td width="123" bgcolor="#CCCCCC">&nbsp;产品名称</td>
        <td width="127"><a  
                 href="detailProduct.jsp?foodID=${currentproduct.productID}"
 target=_blank><STRONG>${currentproduct.name}</STRONG></A></td>
        <td width="100" bgcolor="#CCCCCC">&nbsp;产品品牌</td>
        <td width="119"><a  
                 href="detailProduct.jsp?foodID=${currentproduct.productID}"
 target=_blank><STRONG>${currentproduct.brand}</STRONG></A></td>
      </tr>
      <tr>
        <td bgcolor="#CCCCCC">&nbsp;产品型号</td>
        <td><a  
                 href="detailProduct.jsp?foodID=${currentproduct.productID}"
 target=_blank><STRONG>${currentproduct.model}</STRONG></A></td>
        <td bgcolor="#CCCCCC">&nbsp;产品价格</td>
        <td><a  
                 href="detailProduct.jsp?foodID=${currentproduct.productID}"
 target=_blank><STRONG>${currentproduct.price}</STRONG></A></td>
      </tr>
      </tag:forEach>
    </table></td>
  </tr>
</table>
</body>
</html>方法代码
public List findAllProduct() {
List list = (List) new ArrayList();
String sql = "SELECT * from PRODUCT";
// 获取餐品列表
try { con = DBConnection.getConnection();
ps = con.prepareStatement(sql);
ResultSet results = ps.executeQuery(); // 读取行数据
while (results.next()) {
Product product = new Product();
product.setProductID(results.getInt("productID"));
product.setSerialNumber(results.getString("serialNumber"));
product.setName(results.getString("name"));
product.setBrand(results.getString("brand"));
product.setModel(results.getString("model"));
product.setPrice(results.getString("pirce"));
product.setPicture(results.getString("picture"));
product.setDescription(results.getString("description"));
list.add(product);
}
}
// 处理数据库异常
catch (SQLException e) {
e.printStackTrace();
}
// 释放资源
finally {
DBConnection.closeResultSet(results);
DBConnection.closePreparedStatement(ps);
DBConnection.closeConnection(con);
}
return list;
}

解决方案 »

  1.   

    request.getSession.setAttribute("list",list);
    直接在页面foreach循环list
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="tag"%> 
      

  2.   

    肯定是${sessionScope.products} 没有获取到值确认你把你查询出来的数据放到session作用域中了?
      

  3.   

    在jsp中用代码块先从session中取出来products的值, 循环输出一下,看有没有...
      

  4.   

    products你存到哪里了? 没有放在session中吧
      

  5.   

    貌似就是没有取到值,怎么存到session中?
      

  6.   

    <jsp:useBean id="getProduct" class="com.company.dao.impl.ProductDaoImpl" />
      <!-- 从数据库中取出产品信息赋给products变量,作用域:session -->
      <tag:set var="products" value="${getProducts.products}" scope="session" />
      <!-- 迭代循环,依次从foods变量中取出餐品,在页面中用EL显示该餐品各项信息 -->
      <tag:forEach var="currentproduct" items="${sessionScope.products}" > 
    第二个变量中的赋值是通过getProducts.products来获取值的,你的getProduct有没有?是不是你写错了,少写了一个s,其实是想使用上面设置的一个变量getProduct?
      

  7.   

    我刚多加了一个s,可是运行出来还是下面这行错误。
    <tag:set var="products" value="${getProducts.products}" scope="session" /> 
    问下,value="${getProducts.products}" 后面.products是获取类里面的返回值还是什么?我看参考书上都没有products这个方法和返回值。
      

  8.   

    你写getProducts.products意思是你从类getProducts中取属性products的值,你在getProducts中有products这个属性吗?并且在后台中给这个属性赋值了吗?
      

  9.   

    从你代码的意思看,你应该把方法findAllProduct中list返回值赋给它
      

  10.   

    你的findAllProduct是类ProductDaoImpl中的方法吗?
      

  11.   

    直接这样写${getProducts.list}可以吗?还是要在后台把list赋给products然后前台这样写${getProducts.products}   ???
      

  12.   

    后台把list赋给products然后前台这样写${getProducts.products} ,你是页面是从action跳转过来的吧?
      

  13.   

    <tag:set var="products" value="${getProducts.products}" scope="session" /> 
      <!-- 迭代循环,依次从foods变量中取出餐品,在页面中用EL显示该餐品各项信息 --> 
      <tag:forEach var="currentproduct" items="${sessionScope.products}" > 
    改为:
    <%
      List products=getProducts.findAllProduct();
    %>
    <tag:forEach var="currentproduct" items="${products}" > 
      

  14.   

    <% 
      List products=getProducts.findAllProduct(); 
    %>这句的<% %>怎么会有错误?
      

  15.   

    是什么出错?你<tag:set var="products" value="${getProducts.products}" scope="session" /> 这句话删除了吗?没有删除就会出现变量重名?还有你findAllProduct()方法是在类ProductDaoImpl中吧?