• 转到指定页的分页


    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>
    
     
  • 相关阅读:
    php 单双引号的区别
    SpringBoot动态代理使用Cglib还是jdk的问题
    SpringBoot MyBatis 一级缓存和二级的配置理解
    SpringBoot+MyBatis,显示SQL方式
    java lambda分页
    关于Spring的@Value注解使用Integer方式
    mysql死锁,等待资源,事务锁,Lock wait timeout exceeded; try restarting transaction解决
    关于Integer包装类对象之间值的比较
    你未必了解的DNS
    SpringCloudConfig报错Cannot clone or checkout repository:https://gitee.com/yanfa401/config-repo
  • 原文地址:https://www.cnblogs.com/zkn11199/p/5581830.html
Copyright © 2020-2023  润新知