ACTION中的代码:
productsIterator = new DBProductsIterator(filter);
  while(productsIterator.hasNext()){
            productsBean = (ProductsBean)productsIterator.next();
            System.out.println("NAME: "+productsBean.getProductsName());                          //这边可以正常打印出来我要的NAME
          }request.setAttribute("productsIterator", productsIterator);
页面中我这样去得到他
  <%
          
    while(productsIterator.hasNext()){
    
productsBean = (ProductsBean)productsIterator.next();

System.out.println("-----------------productsBean--------------------"+productsBean.getProductsName());
          %>
//productsIterator.hasNext()   显示为FALSE   
各位大侠 帮忙!!!!!!!!!!!!

解决方案 »

  1.   

    Iterator有个指针概念..
    你在后台是在循环productsIterator.next();之后才将循环完的
    productsIterator放入request作用域...
    那个时候的productsIterator指针已经被你循环.next指向最后了
    所以页面取出来的指针不能再往下了...
    你试一下,在循环productsIterator.next();之前把
    productsIterator放入作用域
    或者循环完后调整指针...
      

  2.   

    补充一下,刚看API.
    Iterator好象没有设置指针方法.
    那在循环productsIterator.next();之前把
    productsIterator放入作用域
    或者用两个变量来记录productsIterator.
    一个用于页面.一个用于后台...
      

  3.   

    就像你说的因为我ACTION里面已经循环productsIterator.next()完了,前台就取不到了!只要ACTION循环删掉就OK