Jsp数据分页

Jsp数据分页

作者: 何双江

关键字: Java jsp 数据分页 yarshray 何双江

 

关于Web应用中数据分页似乎是个很常见的话题,虽然很多人都写过类似的文章,不过我还是想把我的观点用文字表达出来,虽然没有什么新意,不过或多或少总会给各位一点点帮助的.

首先.对于数据分页,我的理解是在给定当前页号和每页有多少条记录的,以及必须知道总共有多少条记录的前提条件下,对总共多少页,和当前显示记录范围的问题.那么根据以上分析我大体知道,如下问题:

       已知条件: 当前页号  每页记录数  总记录数

       1求页面总数:

              总页数=总记录数/每页记录数;

              IF总记录数mod每页记录数 //对于有余数,即不能整除的情况下

              Begin

                     总页数=总页数+1;

              End

       `2求当前记录范围

              当前首记录=当前页号/总页数 * 总记录数

              当前尾记录=当前首记录+每页记录数-1;

 

那么这里我们就可以根据以上分析完成数据分页代码.

 

代码示例如下:

<%@ page import="java.sql.*" %>

<%@ page import="java.util.*" %>

 

<%!

       int nowPageNum=0;//当前页号

       int onePageCount=10;//每页记录数(目前假设为10)

       int allRecordCount=91;//总记录数(目前假设为91s)

       int allPageCount=0;//总页数

       int nowFirst=0;//当前首记录

       int nowLast=0;//当前尾记录

%>

 

<%-- page init --%>

<%

       //得到总页数

       allPageCount=allRecordCount/onePageCount;

       if((allRecordCount%onePageCount) > 0){

              allPageCount++;

       }

 

       //得到当前记录范围

       if(request.getParameter("nowPageNum") != null){

       nowFirst=(int)((allRecordCount*Integer.parseInt((String)request.getParameter("nowPageNum"))/allPageCount));

       }

       nowLast=nowFirst+onePageCount-1;

%>

 

<%-- 数据初始化 --%>

<%

       Class.forName("数据驱动程序名");

       String url="jdbc:url名称 ";

       Connection conn=DriverManager.getConnection(url);

       java.sql.Statement cmd=conn.createStatement();

       String sql="SQL查询语句";

       ResultSet rs=cmd.executeQuery(sql);

       ArrayList al=new ArrayList();

      

       //移动到最当前页首记录

       for(int i=0;i<nowFirst;i++){

              rs.next();

       }

       //取首记录到尾记录

       for(int j=nowFirst;j<=nowLast;j++){

              if(rs.next()){

                     al.add(rs.getString("CustomerID"));

              }else{

                     break;

              }

       }

 %>

 <%-- 显示表格 --%>

 

 <html>

      <body>

             <table>

                    <tr>

                           <th>ID</th>

                    </tr>

                    <%

                           Iterator it=al.iterator();

                           while(it.hasNext()){

                     %>

                    <tr>

                           <td><%= it.next() %></td>

                    </tr>

                    <% }/*end while*/ %>

             </table>

             <% for(int i=0;i<allPageCount;i++){ %>

                    <a href="?nowPageNum=<%=i%>"><%= i %></a> 

             <% } %>

      </body>

 </html>

总结:

       其他相关的WEB页面数据分页,也可以通过该方法完成.如果你愿意可以把该方法包装成类模板,或其他方面的实现工具.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值