request.getSession().setAttribute("pagelist", p);为什么要放到session里面呢!可以就放到request里面!``还有```Struts的<bean:write>是很聪明的````你在action里面是不需要再把那个list转换成 对象的!~``可以这样直接获得里面的属性值```
<bean:write name="list" property="这个对象的属性值如OrderID"/>

解决方案 »

  1.   

    p是一个page类分页类,放到session里是因为page类的pagelist.isPrev和pagelist.isNrev方法
    那个jsp的标签要用,放到sesion还有一个原因就是action是不安全的,这个是个人的看法,不到对不对
      

  2.   

    关键问题是那个,第一个问题啊,有没有人知道呢,我用servlet做了一下,还是这个毛病,就是不是每次都进servlet,真的很郁闷啊,那位高手给解决一下好么?
      

  3.   

    检查一下Page类,有没有关闭数据库的连接。有时不关数据库的连接,会出现类似的问题。
      

  4.   

    把page类分到session里面.在跳回action后,要清空一下session.
    最好放到request里面
      

  5.   

    public ArrayList getArrayList(){
    arr=new ArrayList();
    Session session=HibernateSessionFactory.getSession();
    Transaction tx=session.beginTransaction();
    try{
    CallableStatement cs=session.connection().prepareCall("{call page(?,?,?,?,?,?,?,?)}");
    cs.setInt(1,currPage);
    cs.setInt(2,perRows);
    cs.setString(3,tableName);
    cs.setString(4,columnName);
    cs.setString(5,sign);
    cs.setString(6,where);
    cs.setString(7,order);
    cs.registerOutParameter(8,Types.INTEGER);
    ResultSet rs=cs.executeQuery();
    while(rs.next()){
    OrderPageItem oitem=new OrderPageItem();
    oitem.setOrderID(rs.getInt(1));
    oitem.setCustomer(rs.getString(2));
    oitem.setSipvia(rs.getInt(3));
    oitem.setShipname(rs.getString(4));

    arr.add(oitem);
    }
    this.totalPage=cs.getInt(8);
    cs.close();
    tx.commit();
    return arr;
    }catch(Exception ex){
    ex.printStackTrace();
    return null;
    }finally{
    session.close();
    }
    }
      

  6.   

    这个是那个Page的获得当前页的代码,关闭了session不就相当于,关闭了数据库了么?对吧
      

  7.   

    action是线程不安全的,放到session比较安全吧,是不
      

  8.   

    我自己也做了一个分页是struts与hibernate结合的上一面 1 2 3 下一面样式的,感觉还可以
    很原意与你共享
      

  9.   

    session,和request都清了,还是不行啊 ,