jsp实现页面分页功能代码

下面是关于JSP实现页面分页功能的攻略:

一、引入分页插件

在JSP页面引入分页插件,如Bootstrap、LayUI等,也可以使用第三方插件如jQuery Pagination等。在本文中,我们以LayUI为例来进行讲解。在页面中引入LayUI的分页模块代码如下:

<link rel="stylesheet" href="//cdn.bootcss.com/layui/2.5.6/css/layui.css">
<script src="//cdn.bootcss.com/layui/2.5.6/layui.js"></script>

...

<div id="page"></div>

<script>
        layui.use(['laypage', 'layer'], function () {
            var laypage = layui.laypage;
            laypage.render({
                elem: 'page',
                count: total // 数据总数
                , limit: 10 // 每页显示的条数
                , curr: currPage //当前页码
                , jump: function (obj, first) {
                    if (!first) {
                        location.href = `?pageNo=${obj.curr}`;//跳转地 
                    }
                }
            });
        });
</script>

上面的代码中,我们使用了LayUI的分页插件模块laypage,通过调用它的render方法来渲染分页结构并设置分页配置。

二、处理分页参数

获取用户传递过来的参数pageNo,表示当前所在页码。在Java中,可以通过使用request.getParameter()方法获取请求参数。在下面的Java代码中,我们获取请求参数pageNo并对其进行处理,以将其转成int类型。

int pageNo = 1; // 初始化页码为1
if (request.getParameter("pageNo") != null) {
    pageNo = Integer.parseInt(request.getParameter("pageNo"));// 获得用户传递过来的页码并转为int类型
}

在上述代码中,首先初始化了页码为1,这是为了在用户没有传递页码时使用。然后判断是否有传递pageNo参数,如果有就将其转换成int类型并赋值给变量pageNo

三、分页查询数据

在进行分页查询之前,需要确定所需查询的数据总数,可以通过数据库查询等方式得到。然后根据pageNo和分页每页显示的数量,结合查询到的数据总数,计算出数据查询的起始位置和结束位置,最后通过分页信息进行查询操作,返回查询结果。

下面是Java代码的一个示例,通过查询总数和分页信息进行分页查询,获取用户信息并返回给前端页面显示:

int total = userDao.getTotal(); // 获取用户总数
int limit = 10; // 每页显示数量
int begin = (pageNo - 1) * limit; // 计算起始位置
int end = begin + limit; // 计算结束位置
List<User> userList = userDao.getUserListByPage(begin, end); // 分页查询用户数据

request.setAttribute("userList", userList); // 存储数据到request中
request.setAttribute("total", total); // 存储总数到request中
request.setAttribute("pageNo", pageNo); // 存储当前页码到request中

四、完整示例

下面是一个完整的JSP页面示例,包含分页查询以及分页插件的引入和配置操作。

<%@ page language="java" import="java.util.*,com.example.dao.UserDao,com.example.model.User" %>
<%@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
    <title>用户信息</title>
    <link rel="stylesheet" href="//cdn.bootcss.com/layui/2.5.6/css/layui.css">
</head>
<body>
<div class="layui-main">

    <table class="layui-table">
        <thead>
        <tr>
            <th>ID</th>
            <th>用户名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>操作</th>
        </tr>
        </thead>
        <tbody>
        <%
            int pageNo = 1; // 初始化页码为1
            if (request.getParameter("pageNo") != null) {
                pageNo = Integer.parseInt(request.getParameter("pageNo"));// 获得用户传递过来的页码并转为int类型
            }

            UserDao userDao = new UserDao();
            int total = userDao.getTotal(); // 获取用户总数
            int limit = 5; // 每页显示数量
            int begin = (pageNo - 1) * limit; // 计算起始位置
            int end = begin + limit; // 计算结束位置
            List<User> userList = userDao.getUserListByPage(begin, end); // 分页查询用户数据

            request.setAttribute("userList", userList); // 存储数据到request中
            request.setAttribute("total", total); // 存储总数到request中
            request.setAttribute("pageNo", pageNo); // 存储当前页码到request中
            for (User user : userList) {
        %>
        <tr>
            <td><%= user.getId() %></td>
            <td><%= user.getUsername() %></td>
            <td><%= user.getSex() %></td>
            <td><%= user.getAge() %></td>
            <td>
                <a href="">编辑</a>
                <a href="">删除</a>
            </td>
        </tr>
        <% } %>
        </tbody>
    </table>

    <div id="page"></div>
    <script src="//cdn.bootcss.com/layui/2.5.6/layui.js"></script>
    <script>
        layui.use(['laypage', 'layer'], function () {
            var laypage = layui.laypage;
            var total = <%= total %>; // 数据总数
            var currPage = <%= pageNo %>; // 当前页码
            laypage.render({
                elem: 'page',
                count: total
                , limit: 5
                , curr: currPage
                , jump: function (obj, first) {
                    if (!first) {
                        location.href = `?pageNo=${obj.curr}`;
                    }
                }
            });
        });
    </script>
</div>
</body>
</html>

在上面的示例中,我们将分页插件和JSP结合起来,实现了用户信息的列表查询和分页显示,通过改变请求参数中的pageNo来实现跳转到指定的页面。同时也可根据格式和需要进行调整和修改,根据实际需要进行引用和使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:jsp实现页面分页功能代码 - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • 详解Java数组的四种拷贝方式

    下面是详解Java数组的四种拷贝方式: 概述 在Java中,我们可以使用多种方式对数组进行拷贝。这些拷贝方式包括:1. for循环2. System.arraycopy()方法3. Arrays.copyOf()方法4. clone()方法 本文将详细介绍这四种方式,并提供示例演示它们的使用方法和区别。 for循环 使用for循环拷贝数组是最基本和最常用的方…

    Java 2023年5月26日
    00
  • SpringBoot中使用Ehcache的详细教程

    下面我来为您详细讲解“SpringBoot中使用Ehcache的详细教程”。 简介 Ehcache是一个流行的开源缓存解决方案,它提供了多级缓存机制、内存缓存和磁盘缓存等多种缓存策略,并具有快速、灵活、可扩展等优点。在SpringBoot中使用Ehcache可以加速应用程序的响应速度,提高应用程序的性能。 步骤 1. 引入依赖 在SpringBoot项目的p…

    Java 2023年5月20日
    00
  • SpringBoot四大神器之Actuator的使用小结

    Spring Boot四大神器之Actuator的使用小结 Spring Boot Actuator是Spring Boot的一个扩展模块,提供了一组用于监控和管理Spring Boot应用程序的端点。在本文中,我们将详细讲解Actuator的使用方法和常用端点。 添加依赖 首先,我们需要在Maven项目中添加Actuator的依赖关系。我们可以使用以下依赖…

    Java 2023年5月15日
    00
  • Java语言多线程终止中的守护线程实例

    针对“Java语言多线程终止中的守护线程实例”,我将会按照以下步骤一步步详细讲解: 了解Java中的守护线程概念和作用 创建并启动守护线程 判断的守护线程是否需要终止 设置守护线程的状态 下面就逐一介绍。 1. 了解Java中守护线程概念和作用 Java中分为用户线程和守护线程两种线程,二者之间的重要区别在于:在所有用户线程结束后,虚拟机进程会直接退出,而不…

    Java 2023年5月19日
    00
  • SpringMVC 异常处理机制与自定义异常处理方式

    当使用 Spring MVC 开发应用时,异常处理是非常重要的一部分。由于操作系统错误、数据库错误等各种问题可能会导致应用程序出现异常,因此在应用程序中正确处理异常是重要的。本文将介绍 Spring MVC 中的异常处理机制及如何自定义异常处理方式。 SpringMVC 异常处理机制 Spring MVC 异常处理机制的核心是将异常抛到控制器的外部并处理。S…

    Java 2023年5月27日
    00
  • java编程实现求质数与因式分解代码分享

    下面是 “Java编程实现求质数与因式分解代码分享” 的完整攻略。 目录 介绍 求质数的代码实现 因式分解的代码实现 示例说明 总结 介绍 本文将介绍Java编程实现求质数与因式分解的代码。当我们需要判断一个数是不是质数时,我们可以使用质数的定义:只有1和该数本身能够整除它,它才是质数。因式分解是指将一个数分解成几个互质的整数乘积的形式。这里我们使用两种算法…

    Java 2023年5月19日
    00
  • Java数组的运用详解

    Java 数组的运用详解 什么是数组? 数组是一种容纳固定数量数据元素的方式。在Java语言中,数组就是一个对象,它可以容纳一定数量、相同类型的元素。数组的下标从0开始。 Java中的数组是静态的,也就是说一旦数组被创建后,它的大小便固定下来,不能再动态地改变。 数组的定义和初始化 Java中的数组可以定义为如下格式: type arrayName[]; /…

    Java 2023年5月26日
    00
  • 详解mybatis.generator配上最新的mysql 8.0.11的一些坑

    下面我将详细讲解如何配合最新的MySQL 8.0.11使用MyBatis Generator,并解决可能会遇到的一些坑。具体步骤如下: 1. 准备工作 在开始之前,我们需要准备一些必要的工具和环境: MySQL 8.0.11及以上版本,这里以MySQL 8.0.26为例。 JDK 8及以上版本。 MyBatis Generator,这里以版本1.4.0为例。…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部