转到指定页的分页

1.概述

     对于数据分页较少的情况可以使用上一页或下一页进行数据翻页,如果数据过多,通过上一页或是下一页要想显示某一指定的页面就会很不方便。因此本实例实现一个具有跳转功能的分页显示。这样使用者就可以很方便地跳转到指定页面。运行程序,输入页次,单击GO按钮,即可跳转到指定页。

2.技术要点

     结合了两种页面间传递参数的方法:地址传递和表单传递,地址传递适用于简单的不包含中文的参数传递,而表单传递就可以传递多种类型的数据。在本实例中,使用两种方式传递的是同一个参数,该参数用来指定当前页码,这样不论是单击GO按钮还是单击“上一页”及“下一页”超级链接都可以翻页。

 

3.具体实现

1)创建数据库操作类,定义构造方法UserDao()加载数据库驱动,定义Connection()方法创建与数据库的连接,定义selectStatic()方法执行查询操作,定义closeConnection()方法关闭数据库。

2)创建index.jsp页面。首先,通过JavaBean标签调用数据可靠操作类UserDao,并定义在分页输出数据中使用的参数。

<%@ page language="java" import="java.sql.*,java.lang.*,java.util.*"

       contentType="text/html; charset=gb2312" pageEncoding="GBK"%>

<jsp:useBean id="selectall" scope="page" class="com.pkh.dao.UserDao" />

<%!

    int CountPage = 0;

       int CurrPage = 1;

       int PageSize = 5;

       int CountRow = 0;

%>

然后,根据传递的参数获取当前显示的页码,执行查询结语句,获取到结果集并定位显示数据。

<%

    String StrPage = request.getParameter("Page");              //获取当前页

       if (StrPage == null || StrPage == "") {

              CurrPage = 1;                             //定义当前页为第1页

       } else {

              CurrPage = Integer.parseInt(StrPage);             //获取当前页的值

       }

       ResultSet Rs;

       String SQL = "Select * From tb_ClassList";             //定义SQL语句

       Rs = selectall.selectStatic(SQL);                      //执行查询语句

       Rs.last();

       int i = 0;

       CountRow = Rs.getRow();                          //获取查询结果集中的记录数

       CountPage = (CountRow / PageSize);                 //计算总的页数

       if (CountRow % PageSize > 0)

              CountPage++;

       Rs.first();                                        //获取第1条记录

       if (CountRow > 0) {

              Rs.absolute(CurrPage * PageSize - PageSize + 1);        //指定跳转的页码

              while (i < PageSize && !Rs.isAfterLast()) {    //循环输出数据

%>

    <tr>

           <td height="30" align="center" nowrap>

                  <span class="style3"><%=Rs.getString("CID")%></span>

           </td>

    </tr>

<%

            Rs.next();

               i++;

        }

        selectall.closeConnection();

       }

%>

最后,创建上一页、下一页和最后一页超级链接,链接到index.jsp页面,指定Page作为栏目标识,将页数作为参数值。关键代码如下:

<tr><td height="30" nowrap>

    [<%=CurrPage%>/<%=CountPage%>] 每页5条 共<%=CountRow%>条记录 请输入页次

       <input name="Page" type="text" size="4">

       <input type="submit" name="Submit" value="GO">

<%

    if (CurrPage > 1) {

%>

    <a href="index.jsp?Page=<%=CurrPage - 1%>&Values=<%=v%>">上一页</a>

<% }   %>

<%

    if (CurrPage < CountPage) {

%>

    <a href="index.jsp?Page=<%=CurrPage + 1%>&Values=<%=v%>">下一页</a>

<% }   %>

    <a href="index.jsp?Page=<%=CountPage%>&Values=<%=v%>">最后一页</a>

</td></tr>

 
原文地址:https://www.cnblogs.com/zkn11199/p/5581830.html