product.jsp
 <%
  List all = null ;
  all = (List)request.getAttribute("all") ;
  %>Productservlet
try
{
request.setAttribute("all",Daofactory.getProductdaoimp().queryAll()) ;
}org.apache.jasper.JasperException: Exception in JSP: /product.jsp:2825:      <th>删除</th>
26:     </tr>
27:     <%
28:  Iterator iter = all.iterator() ;
29:  while(iter.hasNext())
30:  {
31:  Product p = (Product)iter.next() ;

解决方案 »

  1.   

    把值扔给List后直接For循环就可以出来
      

  2.   

    all = (List)request.getAttribute("all") ; 这句没取到值吧?
    把all打出来看看是不是空值null
      

  3.   

    2楼说的对,那一行的语法又没有错,你将all打印出来看看是不是空,如果是null就的另找原因了.
      

  4.   

    如2楼3楼所说的.是NULL值的话就去看Daofactory.getProductdaoimp().queryAll()有没有值了..
    要去你别人代码里找了这里是找不出来了的
      

  5.   

    Daofactory.getProductdaoimp().queryAll()
    你的这个工厂类中的方法的实现,是不是查询到数据?
    最好输出一下
      

  6.   

    product.jsp 
    <% 
      List all = null ; 
      all = (List)request.getAttribute("all") ; 
      %> Productservlet 
    try 

    request.setAttribute("all",Daofactory.getProductdaoimp().queryAll()) ; 
    } Productdaoimp
    public List queryAll()
    {
    List all=new ArrayList();
    String sql = "SELECT * FROM categories" ;
    try
    {
    Connection conn = pool.getConnection();
    PreparedStatement pstmt = conn.prepareStatement(sql);
    ResultSet rs = pstmt.executeQuery() ;
    while(rs.next())
    {
    Product p= new Product() ;
    p.setProductid(rs.getInt(1)) ;
    p.setCategoryid(rs.getInt(2));
    p.setName(rs.getString(3));
    p.setDescription(rs.getString(4));
    p.setPrice(rs.getFloat(5));
    all.add(p) ;
    }

    rs.close() ;
    pstmt.close() ;
    conn.close() ;
    }
    catch (Exception e)
    {
    e.printStackTrace();
    }
    return all ;

    }org.apache.jasper.JasperException: Exception in JSP: /product.jsp:28 25:      <th>删除 </th> 
    26:    </tr> 
    27:    <% 
    28: Iterator iter = all.iterator() ; 
    29: while(iter.hasNext()) 
    30:… 
    我是初学者,请大家多多指教,请说的具体点,谢谢!
      

  7.   

    request.setAttribute("all",Daofactory.getProductdaoimp().queryAll()) ; 
    从代码上看好像没有问题,怀疑是不是程序没有运行到这段代码,把它前面加上一句输出看看得到的listList temp = Daofactory.getProductdaoimp().queryAll();
    System.out.println("All size:" + temp.size());
    request.setAttribute("all", temp) ; 
      

  8.   

    请问一下楼上的,那三行代码放在一个servlet能运行吗?我添进去了,是放在Productservlet中,好像不能运行(不能输出)。谢谢!
      

  9.   


    没有输出的话说明是程序根本就没有运行到查询数据库的这段代码,所以页面上all = (List)request.getAttribute("all") ; 拿到的是空值null。你设个断点跟踪一下程序的流程,看看是不是没有走到查询数据哪一步。