关于【分页显示】的一些方法

在进行java web 开发的时候我们常常会用到分页显示,现在总结一些这方面的技术。。。

<%
int PageSize =20; //设置每张网页显示两条记录
int ShowPage = 1; //设置欲显示的页数
int RowCount = 0; //ResultSet的记录数目
int PageCount = 0; //ResultSet分页后的总页数
int duoyu=0;
sql="select * from hw order by hw_id DESC";
rs=mdb.executeQuery(sql);
if(rs.next())
{  
  //建立ResultSet(结果集)对象,并执行SQL语句
    rs.last(); //将指标移至最后一笔记录
    RowCount=rs.getRow();
    duoyu=RowCount % PageSize;
    if(duoyu==0)
     {
          PageCount=RowCount/PageSize;
      }
     else{
      PageCount=(RowCount-duoyu)/PageSize;
       PageCount++;
      }
 // PageCount=((RowCount % PageSize) == 0?(RowCount/PageSize) : (RowCount/PageSize)+1);
  //计算显示的页数
    String ToPage = request.getParameter("ToPage");
    if(ToPage==""){ToPage="1";}
//判断是否可正确取得ToPage参数, 
//可取得则表示JSP网页应显示特定分页记录的语句
   if(ToPage!=""){
      ShowPage =Cint(ToPage); //取得指定显示的分页页数
   //下面的if语句将判断用户输入的页数是否正确
       if(ShowPage > PageCount)
       { //判断指定页数是否大于总页数, 是则设置显示最后一页
           ShowPage = PageCount;
       } else if(ShowPage <= 0)
       { //若指定页数小于0, 则设置显示第一页的记录
              ShowPage = 1;
        }
    }
rs.absolute((ShowPage - 1) * PageSize+1); 
//计算欲显示页的第一笔记录位置
%>
            <!----------------------one showing unit------------------------------->
            <%
 //利用For循环配合PageSize属性输出一页中的记录
   int i=1,linshi=1;
  linshi=ShowPage;
  rs.previous();
   String hw_sn,isbn;
   int hw_id;
  while(rs.next()&i<= PageSize)
 {
     i++;
     hw_id=rs.getInt("hw_id"); 
%>
            <tr bgcolor="#FFFFFF"> 
              <td height="18" valign="middle"><%=rs.getString("hw_name")%> </td>
              <td valign="middle"> 
                <div align="center"><%=rs.getString("hw_sn")%></div></td>
              <td valign="middle"> 
                <div align="center"><%=rs.getInt("hw_cash")%></div></td>
              <td valign="middle"> 
                <div align="center"><%=rs.getString("isbn")%></div></td>
              <td valign="middle"> 
                <div align="center"><%=rs.getDate("hw_date")%></div></td>
              <td width="42" valign="middle"> 
                <div align="center"> <a href="delhw.jsp?hw_id=<%=hw_id%>&action=del">删除</a></div></td>
              <td colspan="2" valign="middle"> 
                <div align="center"><a href="changehw.jsp?hw_id=<%=hw_id%>&sort_id=<%=rs.getInt("sort_id")%>&Nsort_id=<%=rs.getInt("Nsort_id")%>">修改</a> 
                </div></td>
            </tr>
            <%
//下面的if判断语句用于防止输出最后一页记录时, 
//将记录指标移至最后一笔记录之后
 //跳出for循环
   }
 %>
            <!-----------------------shonwing unit end----------------------------------------------->
            <tr> 
              <td height="20" colspan="7" valign="middle"> 
                <div align="center">第<%=ShowPage%>页/共<%=PageCount%>页&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                  <%
                 linshi=ShowPage-1;
if(linshi>0)
{%>
                  <a href="delhw.jsp?ToPage=<%=linshi%>">上一页</a> 
                  <%
}else
{%>
                  上一页 
                  <%}  linshi=ShowPage+1;
if(linshi<=PageCount)
{%>
                  <a href="delhw.jsp?ToPage=<%=linshi%>">下一页</a> 
                  <%
}else
 {%>
                  下一页 
                  <%}%></font>
                  </div></td>
              <td width="11">&nbsp;</td>
            </tr>
            <tr> 
              <td height="2"></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td></td>
              <td width="29"></td>
              <td></td>
            </tr>
            <%
rs.close();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值