查询到的数据都保存在bean的list里面,通过设置起始index和结束index确定一页显示哪些条目,
点击翻页,如果不后退没问题,后退的话就会出问题,发现bean关于分页的一些参数在后退后并没有恢复到之前的状态,这样再继续翻页,最后index会超过list的size一共四个翻页链接,通过servlet实现  <%if(bookSearchBean.getCurrentPage()==1){ out.print(" 首页 上一页");   }else{  %>   
<A HREF="servlet/RollPageServlet?id=first">首页</A>
<A HREF="servlet/RollPageServlet?id=previous">上一页</A>
<%}%>
<%if(bookSearchBean.getPages()==bookSearchBean.getCurrentPage()){
 out.print("下一页 尾页");}
else{  %>   
<A HREF="servlet/RollPageServlet?id=next">下一页</A>
<A HREF="servlet/RollPageServlet?id=last">尾页</A>
<%}%>
        bookSearchBean = (BookSearchBean)request.getSession().getAttribute("bookSearchBean");
        String id = request.getParameter("id");
        if(id.equals("first"))
            bookSearchBean.first();
        else if(id.equals("previous"))
            bookSearchBean.previous();
        else if(id.equals("next"))
            bookSearchBean.next();
        else if(id.equals("last"))
            bookSearchBean.last();
        request.setAttribute("bookSearchBean",bookSearchBean);
        RequestDispatcher rd = getServletContext().getRequestDispatcher("/gc.jsp");
        rd.forward(request, response);

解决方案 »

  1.   

    把分页的所有参数放到session,后退时从session取
      

  2.   

    个人觉得翻页的还是放到session里好。要是数据量比较大的话可以多做几重查询。
      

  3.   

    我做了一个翻页是把数据库中的数据先封装到一个bean中,然后再把bean放入一个arraylist中,然后再传到页面中,放入session中。有大数据的话在分页时先传一个引子过来,再二次查询。
      

  4.   

    放入session?
    哪位给点代码参考一下啊
      

  5.   

    这样再继续翻页,最后index会超过list的size
    在BookSearchBean....检查index是否正確阿
      

  6.   

    楼主试下这个http://www.blogjava.net/jfy3d/archive/2005/05/11/4175.html看看还有没有这样那样的问题