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日

相关文章

  • SpringBoot 配合 SpringSecurity 实现自动登录功能的代码

    下面我就来详细讲解一下 “SpringBoot 配合 SpringSecurity 实现自动登录功能的代码”的完整攻略。 什么是自动登录功能 自动登录(Remember Me)是指用户可以选择保存登录状态,保留一定时间不失效。这样用户可以在再次打开网站时,不需要重新输入用户名密码,而是直接使用之前的登录信息登录进去。 操作步骤 1. 导入相关依赖 在 pom…

    Java 2023年5月20日
    00
  • Java中mybatis的三种分页方式

    Java中mybatis的分页方式有以下3种: 使用MySQL的Limit语句进行分页: 在Mapper接口中定义方法 public List<User> findByPage(@Param("startIndex") int startIndex, @Param("pageSize") int pageS…

    Java 2023年5月20日
    00
  • Sprint Boot @NotNull使用方法详解

    @NotNull是Spring Boot中的一个注解,用于标记一个字段或方法参数不能为空。在本文中,我们将详细介绍@NotNull注解的作用和使用方法,并提供两个示例说明。 @NotNull注解的作用 @NotNull注解用于标记一个字段或方法参数不能为空。当使用@NotNull注解标记一个字段或方法参数时,如果该字段或方法参数为null,则会抛出javax…

    Java 2023年5月5日
    00
  • Java利用栈实现简易计算器功能

    为了实现Java利用栈实现简易计算器功能,我们可以使用栈来存储操作数和运算符,然后依次从左到右扫描表达式,并根据运算符的优先级进行计算。下面是具体的实现步骤: 1.将中缀表达式转换为后缀表达式 使用栈来转换中缀表达式为后缀表达式是比较常见的方法。具体步骤如下: 创建一个栈来保存运算符。 从左到右扫描中缀表达式。 如果当前扫描到的是操作数,则直接输出到后缀表达…

    Java 2023年5月19日
    00
  • Java自定义线程池的实现示例

    下面是“Java自定义线程池的实现示例”的完整攻略。 Java自定义线程池的实现示例 简介 线程池是一种重要的多线程编程方式,它可以提高程序的效率和稳定性。Java的线程池由JDK自带的ThreadPoolExecutor实现,但我们也可以使用自定义的方式实现线程池,以满足特定需求。 实现步骤 定义线程池类 首先,我们需要定义线程池类,并继承自Java的Th…

    Java 2023年5月19日
    00
  • Spring jcl及spring core源码深度解析

    首先,我们需要理解“Spring JCL”和“Spring Core”这两个概念。 “Spring JCL”是Spring框架中的一个日志抽象框架,它提供了简单的接口以及灵活的配置方式,使得开发者可以用不同的日志框架进行日志的操作与管理。Spring JCL本身并不提供具体的实现,而是通过SLF4J、Commons Logging、Log4j 2等其他日志框…

    Java 2023年5月19日
    00
  • Java简化复杂系统调用的门面设计模式

    Java简化复杂系统调用的门面设计模式,也叫做Facade模式,是一种结构型设计模式,目的是为系统中的高层模块提供简化、统一的接口,使系统更易于使用和维护。 下面是实现Java门面设计模式的完整攻略: 1. 定义门面类 首先,我们需要定义一个门面类来隐藏系统中的复杂性。这个类需要提供一个简单的接口,封装系统中的一些复杂操作。 public class Sys…

    Java 2023年5月24日
    00
  • SpringBoot 表单提交全局日期格式转换器实现方式

    下面就是 “SpringBoot 表单提交全局日期格式转换器实现方式” 的完整攻略。 1. 背景 在 SpringBoot 中,表单提交中的日期格式转换一直是困扰开发者的问题。SpringBoot 提供了很多方式解决这个问题,其中最简单的方式就是通过实现全局日期格式转换器来解决。 2. 实现方式 以下是实现全局日期格式转换器的步骤: 2.1 新建全局日期格式…

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