Java实现分页代码

下面是Java实现分页代码的完整攻略。

确定分页参数

Java实现分页代码的第一步就是要确定分页参数,常见的分页参数有:当前页码、每页显示的记录数、总记录数、总页数等。

计算总页数

需要先根据每页记录数和总记录数计算出总页数。计算方法是将总记录数除以每页显示的记录数,如果余数大于0,则总页数需要加1。

// 计算总页数
int totalPage = totalRecord / pageSize;       
if (totalRecord % pageSize > 0) {
    totalPage++;
}

查询当前页数据

根据分页参数查询当前页的数据。在SQL语句中使用LIMIT关键字限制查询结果的范围。

// SELECT * FROM table LIMIT offset, pageSize
String sql = "SELECT * FROM table LIMIT ?, ?";
List<Object> params = new ArrayList<Object>();
params.add((currentPage - 1) * pageSize);
params.add(pageSize);
List<Map<String, Object>> data = jdbcTemplate.queryForList(sql, params.toArray());

构建分页导航栏

分页导航栏可以让用户方便地切换不同页码的数据。一般情况下,分页导航栏可以显示当前页、总页数、首页、上一页、下一页、尾页等信息。

// 构建分页导航栏
StringBuilder sb = new StringBuilder();
sb.append("当前第" + currentPage + "页,共" + totalPage + "页");
if (currentPage > 1) {
    sb.append("<a href='?page=1'>首页</a>");
    sb.append("<a href='?page=" + (currentPage - 1) + "'>上一页</a>");
}
if (currentPage < totalPage) {
    sb.append("<a href='?page=" + (currentPage + 1) + "'>下一页</a>");
    sb.append("<a href='?page=" + totalPage + "'>尾页</a>");
}

示例1:SpringBoot分页实现

下面是使用SpringBoot框架实现分页的示例代码。

@GetMapping("/users")
public String getAllUser(@RequestParam(defaultValue = "1") int page,
                         @RequestParam(defaultValue = "10") int size,
                         Model model) {
    int totalRecord = userService.countUser();
    int totalPage = totalRecord / size;
    if (totalRecord % size > 0) {
        totalPage++;
    }
    List<User> users = userService.getUserByPage((page - 1) * size, size);
    model.addAttribute("users", users);
    model.addAttribute("totalPage", totalPage);
    model.addAttribute("currentPage", page);
    return "user-list";
}

示例2:JSP分页实现

下面是使用JSP页面实现分页的示例代码。

<%
int currentPage = request.getParameter("page") == null ? 1 : Integer.parseInt(request.getParameter("page"));
int pageSize = 10;
int totalRecord = userService.countUser();
int totalPage = totalRecord / pageSize;
if (totalRecord % pageSize > 0) {
    totalPage++;
}
List<User> users = userService.getUserByPage((currentPage - 1) * pageSize, pageSize);
%>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>姓名</th>
            <th>年龄</th>
        </tr>
    </thead>
    <tbody>
        <% for (User user : users) { %>
        <tr>
            <td><%= user.getId() %></td>
            <td><%= user.getName() %></td>
            <td><%= user.getAge() %></td>
        </tr>
        <% } %>
    </tbody>
</table>
<div>
    当前第<%= currentPage %>页,共<%= totalPage %>页 
    <% if (currentPage > 1) { %>
    <a href="?page=1">首页</a>
    <a href="?page=<%= currentPage - 1 %>">上一页</a>
    <% } %>
    <% if (currentPage < totalPage) { %>
    <a href="?page=<%= currentPage + 1 %>">下一页</a>
    <a href="?page=<%= totalPage %>">尾页</a>
    <% } %>
</div>

以上就是Java实现分页代码的完整攻略,希望可以对你有所帮助。

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

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 详解Spring boot/Spring 统一错误处理方案的使用

    详解Springboot/Spring统一错误处理方案的使用 在SpringBoot/Spring应用程序中,错误处理是一个非常重要的方面。在本文中,我们将介绍如何使用SpringBoot/Spring的统一错误处理方案来处理应用程序中的错误。 步骤一:添加依赖 我们需要在pom.xml文件中添加Spring Boot Starter Web依赖。以下是一个…

    Java 2023年5月15日
    00
  • Java中「Future」接口详解

    目录 一、背景 二、Future接口 1、入门案例 2、Future接口 三、CompletableFuture类 1、基础说明 2、核心方法 2.1 实例方法 2.2 计算方法 2.3 结果获取方法 2.4 任务编排方法 2.5 异常处理方法 3、线程池问题 四、CompletableFuture原理 1、核心结构 2、零依赖 3、一元依赖 4、二元依赖 …

    Java 2023年4月17日
    00
  • Bootstrap和Java分页实例第一篇

    首先,该攻略主要针对的是Bootstrap和Java分页实例的基础入门教程,对于前端和Java开发初学者非常实用。文本将分为以下几个部分进行讲解: 一、Bootstrap的基础使用 1.1 引入Bootstrap到项目中 在使用Bootstrap进行开发时,首先需要在项目中引入Bootstrap的CSS和JS文件,这可以通过CDN链接或者下载本地文件的方式引…

    Java 2023年6月15日
    00
  • 分享Java常用开发编辑器工具

    下面是详细的讲解。 分享Java常用开发编辑器工具 一、介绍 Java是一种广受欢迎的编程语言,它可以帮助开发人员快速、高效地编写和调试代码。但想要成为一名优秀的Java开发人员,除了熟悉语言规范和基础知识外,还需要掌握一些高效的开发工具。本文将分享一些常用的Java开发编辑器工具,帮助Java开发人员更高效地编写代码。 二、常用的Java开发编辑器工具 1…

    Java 2023年5月23日
    00
  • 利用Hadoop实现求共同好友的示例详解

    利用Hadoop实现求共同好友需要以下几个步骤: 划分好友关系 拆分好友关系,生成单向二元组 合并具有相同好友的二元组 在合并结果中找到共同好友 下面的示例中,我们假设有三个人A、B、C,他们之间的好友关系如下所示: A的好友:B、C、D B的好友:A、C、E C的好友:A、B、D、E 使用Hadoop来实现求A和B的共同好友和A和C的共同好友。 划分好友关…

    Java 2023年5月20日
    00
  • maven环境变量配置以及失败原因解析

    Maven是Java项目的构建工具,通过管理项目中的依赖、编译、测试等环节,快速构建出可部署的程序包。在使用Maven时,为了方便使用,需要配置Maven环境变量。本文将详细讲解Maven环境变量配置以及可能出现的失败原因解析。 环境变量配置 1. 下载Maven 首先需要从Maven官网下载Maven,我们选择下载最新版的Maven 3。下载完成后,解压到…

    Java 2023年5月20日
    00
  • SpringBoot如何优雅地处理全局异常详解

    下面就来详细讲解“SpringBoot如何优雅地处理全局异常”的完整攻略。 知识前置 在正式进入如何优雅地处理全局异常之前,我们需要先了解一些相关的知识。 异常分类 在Java中,异常分为两种: 可检查异常(checked exception):这种异常在编译期就能检查出来。 不可检查异常(unchecked exception):这种异常通常是由于程序内部…

    Java 2023年5月27日
    00
  • 不让tomcat显示目录文件列表的配置方法

    下面是详细的攻略: 什么是目录文件列表 在访问一个网页时,如果该网页所在的目录中含有多个文件,那么当我们没有明确指定要访问的文件时(比如访问一个目录时),服务器会默认返回一个该目录下所有文件的列表。这个列表就被称为目录文件列表,它通常会列出每个文件的名称、文件尺寸、修改时间等信息。 在一些情况下,我们可能希望禁止服务器显示目录文件列表,因为它有可能会暴露我们…

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