日期:2014-05-18  浏览次数:20841 次

关于JSP翻页问题
特别声明:我是菜鸟。

    需求描述:就是对数据库产生的新闻列表进行划页。一页只能显示15条信息(这个功能我已完成了),并且对多余的信息有翻页的功能。

    困难:看了很多帖子,都是在jsp页面上对数据库进行操作。但是我的查询是利用BEAN来做的。

    下面是我JSP页面上动态显示列表的代码:
    //newslist.jsp

<%    

      Collection   newsAll=newsBean.getNewsC( "announce ");
      Iterator   it=newsAll.iterator();  

        /**
        *   i的作用在于,控制列表的长度。
        */
      int   i=0;  
      while(it.hasNext()&i <15){
        News   temp=(News)it.next();
        out.println( " <tr> ");
        out.println( " <td> "+temp.getNewsID()+ " </td> ");
        out.println( " <td> <a   href= 'detail.jsp?newsID= "+temp.getNewsID()+ " '> "+temp.getTitle()+ " </a> </td> ");
        out.println( " <td> "+temp.getTimes()+ " </td> ");
        out.println( " <td> 【 <a   href= 'modNews.jsp?newsID= "+temp.getNewsID()+ " '> 编辑 </a> 】 </td> ");
        out.println( " <td> 【 <a   href= 'delNews.jsp?newsID= "+temp.getNewsID()+ " '> 删除 </a> 】 </td> ");
        out.println( " </tr> ");
        i++;
                }
              session.setAttribute( "poniter ",it);
                  %>
   
      我的思路:列表的产生是通过it对象在信息条上往下一个一个移动完成查询的。所以我想,能不能通过对it对象的值控制而达到进行翻页效果呢?

      我的尝试:我新建了一个newslist_next.jsp作为下一页翻页的链接。在newslist.jsp用   session.getAttribute( "poniter ",it);获得it对象,再将新的it用it.hasNext()循环语句在此页里执行下去 。这样确实没什么问题。可是……

      麻烦来了:就是,我不可能事先做好N多的newslist_next.jsp来预备。如果你想说通过页面的自我调用来完成“下一页”的功能的话,对于newslist.jsp的传值当然只有第一次访问newslist_next.jsp才运行此代码。后面的newslist_next.jsp是不能运行这个代码的。
      还有就是往前翻,啊~~~我头都大了。

      要是你看的头都大的话,那就把上面的话全部忘掉吧!请高手告诉我怎么才能不用修改BEAN里代码,只通过JSP或者事件或者JS来完成翻页吧~~~~
      =,=

------解决方案--------------------
传递你需要查询的页数到newslist.jsp,再根据页数查询次页信息并显示出来!!