Thymeleaf+Bootstrap封装分页组件

效果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码

templates/components/pagination.html

<!doctype html>
<html lang="zh-CN" xmlns:th="http://www.thymeleaf.org">
<body>
<div class="d-flex justify-content-between align-items-center mb-3" th:fragment="pagination(current,pageSize,rows,path)"><th:block th:with="pages = ${rows%pageSize==0?rows/pageSize:rows/pageSize+1}"><div><span th:text="${pages}"/><span th:text="${rows}"/> 条数据</div><div><!--有数据:总页数大于1--><th:block th:if="${pages >= 1}"><ul class="col pagination mb-0"><li class="page-item" th:classappend="${current == 1} ? 'disabled'"><a class="page-link" th:href="@{${path}(pageNo=${current - 1})}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a></li><!--总页数小于8--><th:block th:if="${pages < 8}" th:each="page:${#numbers.sequence(1,pages)}"><li th:class="${page == current ? 'page-item active':'page-item'}"><a class="page-link" th:href="@{${path}(pageNo=${page})}" th:text="${page}" th:title="|第${page}页|"></a></li></th:block><!--总页数大于等于8--><th:block th:if="${pages >= 8}"><!--当前页小于5--><th:block th:if="${current < 5}"><!--前4页--><th:block th:each="page:${#numbers.sequence(1,4)}"><li th:class="${page == current ? 'page-item active':'page-item'}"><a class="page-link" th:href="@{${path}(pageNo=${page})}" th:text="${page}" th:title="|第${page}页|"></a></li></th:block><!--5、6页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=5)}" title="第5页">5</a></li><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=6)}" title="第6页">6</a></li><!--分隔符--><li class="page-item mx-2" disabled="">...</li><!--最后页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${pages})}" th:text="${pages}" th:title="|第${pages}页|"></a></li></th:block><!--当前页大于等于5--><th:block th:if="${current >= 5}"><!--当前页小于等于倒数第5--><th:block th:if="${current <= pages - 5}"><!--第1页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=1)}" title="第1页">1</a></li><!--分隔符--><li class="page-item mx-2" disabled="">...</li><!--中间5页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${current - 2})}" th:text="${current - 2}" th:title="|第${current - 2}页|"></a></li><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${current - 1})}" th:text="${current - 1}" th:title="|第${current - 1}页|"></a></li><li class="page-item active"><a class="page-link" th:href="@{${path}(pageNo=${current})}" th:text="${current}" th:title="|第${current}页|"></a></li><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${current + 1})}" th:text="${current + 1}" th:title="|第${current + 1}页|"></a></li><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${current + 2})}" th:text="${current + 2}" th:title="|第${current + 2}页|"></a></li><!--分隔符--><li class="page-item mx-2" disabled="">...</li><!--最后页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=${pages})}" th:text="${pages}" th:title="|第${pages}页|"></a></li></th:block><!--当前页大于倒数第5--><th:block th:if="${current > pages - 5}"><!--第1页--><li class="page-item"><a class="page-link" th:href="@{${path}(pageNo=1)}" title="第1页">1</a></li><!--分隔符--><li class="page-item mx-2" disabled="">...</li><!--后6页--><th:block th:each="page:${#numbers.sequence(pages - 5,pages)}"><li th:class="${page == current ? 'page-item active':'page-item'}"><a class="page-link" th:href="@{${path}(pageNo=${page})}" th:text="${page}" th:title="|第${page}页|"></a></li></th:block></th:block></th:block></th:block><li class="page-item" th:classappend="${current == pages} ? 'disabled'"><a class="page-link" th:href="@{${path}(pageNo=${current + 1})}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li></ul></th:block></div></th:block>
</div>
</body>
</html>

使用

<div th:replace="~{components/pagination::pagination(${page.current}, ${page.size}, ${page.total}, @{/admin/user/list(name=${name},email=${email},inTime1=${inTime1},inTime2=${inTime2})})}"></div>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/406267.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】string类:模拟实现(适合新手的手撕string)

上次介绍了标准库里的string类以及常用接口&#xff1a;【C】String类&#xff1a;标准库介绍-CSDN博客 本次就来亲自动手来模拟实现下 目录 一.基本结构 二.构造函数&#xff08;constructor&#xff09; 1.构造函数 2.拷贝构造 3.c_str() 三.析构函数&#xff08;destr…

linux PXE批量网络装机及Kickstart无人值守安装

目录 一、PXE基本概述 1.1 什么是PXE 1.2 PXE批量部署的优点 1.3 PXE部署的前置条件 二、部署PXE远程安装服务器 2.1 安装并启动TFTP服务 2.2 安装并启动DHCP服务 2.3 准备linux内核、初始化镜像文件 2.4 准备PXE引导程序 2.5 安装FTP服务&#xff0c;准备CentOS 7 安…

Solidworks 创建工程图纸,工程图纸不显示解决

当完成三维零件&#xff0c;制作工程图纸时&#xff0c;发现右侧“工程图图纸”不显示了&#xff0c;不能像以前那样方便的拖拽了。如下图&#xff1a; 解决办法&#xff1a; 步骤1:点击这 ...&#xff0c;打开需要的三维图文件&#xff0c;如“公头主体” 步骤2&#xff1a;…

VisualStudio|开发环境相关技巧及问题

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 本节继续学习VisualStudio相关内容&#xff0c;以前学习都是以能用为主&#xff0c;没有系统的学习&#xff0c;接下来会系统的学习相关内容&#xff0c; 以下为学习笔记。 01 第三方dll调用 ①&#xff1a;如果第三…

希尔排序

希尔排序是直接排序的优化版本。 希尔排序是将庞大的数据进行分组&#xff0c;通过定义一个gap值&#xff0c;将数组里面间隔为这个gap值的元素分在一个小组里面&#xff0c;把每个小组通过插入排序的方式分别排成有序 在一组组排成有序的这个过程中&#xff0c;原来无序的数…

快速上手体验MyPerf4J监控springboot应用(docker版快速开始-本地版)

使用MyPerf4J监控springboot应用 快速启动influxdb时序数据库日志收集器telegrafgrafana可视化界面安装最终效果 项目地址 项目简介: 一个针对高并发、低延迟应用设计的高性能 Java 性能监控和统计工具。 价值 快速定位性能瓶颈快速定位故障原因 快速启动 监控本地应用 idea配…

M8020A J-BERT 高性能比特误码率测试仪

M8020A 比特误码率测试仪 J-BERT M8020A 高性能 BERT 产品综述 Keysight J-BERT M8020A 高性能比特误码率测试仪能够快速、准确地表征传输速率高达 16 或 32 Gb/s 的单通道和多通道器件中的接收机。 M8020A 综合了更广泛的功能&#xff0c;可以简化您的测试系统。 自动对信…

qiankun微前端

qiankun微前端 主项目1、安装qiankun2、main.js引入注册 二、子项目1、安装sh-winter/vite-plugin-qiankun2、main.js配置3、vite.config.js配置 三、问题解决四、一键启动 主项目 1、安装qiankun npm i qiankun -S2、main.js引入注册 import { createApp } from vue import…

健身房管理系统--论文pf

TOC springboot542健身房管理系统--论文pf 第1章 绪论 1.1选题动因 当前的网络技术&#xff0c;软件技术等都具备成熟的理论基础&#xff0c;市场上也出现各种技术开发的软件&#xff0c;这些软件都被用于各个领域&#xff0c;包括生活和工作的领域。随着电脑和笔记本的广泛…

C语言之字节对齐

目录 1. 引言2.字节对齐原理3.字节对齐应用4.总结 1. 引言 字节对齐属于编译器的内容&#xff0c;决定数据实际的存放方式。主要有两个作用&#xff1a;1.优化数据储存&#xff0c;减少空间浪费 2.增加数据读取速率&#xff0c;本文将于以上两点展开&#xff0c;简述字节对齐的…

VLM调研记录

Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction 北大和字节团队的一篇VLM&#xff0c;在生成任务上&#xff0c;用GPT范式&#xff0c;声称在FID上超过了DIT&#xff0c;SD3和SORA。开源。首先是multi-scale的VQVAE&#xff0c;然后是…

一起学习LeetCode热题100道(52/100)

52.腐烂的橘子(学习) 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a; 值 0 代表空单元格&#xff1b; 值 1 代表新鲜橘子&#xff1b; 值 2 代表腐烂的橘子。 每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。 返…

PHP轻创推客集淘客地推任务平台于一体的综合营销平台系统源码

&#x1f680;轻创推客&#xff0c;营销新纪元 —— 集淘客与地推任务于一体的全能平台&#x1f310; &#x1f308;【开篇&#xff1a;营销新潮流&#xff0c;轻创推客引领未来】 在瞬息万变的营销世界里&#xff0c;你还在为寻找高效、全面的营销渠道而烦恼吗&#xff1f;&…

【数据安全】数据中心数据安全整体解决方案(Doc完整版)

第一章 解决方案 1.1 建设需求 1.2 建设思路 1.3 总体方案 信息安全系统整体部署架构图 1.3.1 IP准入控制系统 1.3.2 防泄密技术的选择 1.3.3 主机账号生命周期管理系统 1.3.4 数据库账号生命周期管理系统 1.3.5 双因素认证系统 1.3.6 数据库审计系统 1.3.7 数据脱敏…

图数据库查询语言 Cypher 基础

Cypher 是 Neo4j 的声明式查询语言&#xff0c;为属性图提供了富有表现力和高效的查询&#xff0c;是一种成熟和直观的图数据库查询语言。在图上执行任何类型的创建、读取、更新或删除(CRUD)&#xff0c;Cypher 是 Neo4j 的主要接口。 本文介绍了 Cypher 基础知识&#xff0c;…

软件测试用例的编写(六)

软件测试用例 定义 测试用例&#xff08;TestCase&#xff09;是为项目需求而编制的一组测试输入&#xff0c;执行步骤&#xff0c;以及预期结果&#xff0c;以便测试某个程序是否满足客户需求 可以总结为&#xff1a;每一个测试点的数据设计和步骤设计 – 对测试点的细化 作…

大数据技术之Zookeeper安装 (2)

目录 下载地址 本地模式安装 1&#xff09;安装前准备 2&#xff09;配置修改 3&#xff09;操作 Zookeeper 配置参数解读 Zookeeper 集群操作 集群规划 解压安装 配置服务器编号 配置 zoo.cfg 文件 集群操作 Zookeeper 集群启动停止脚本 创建脚本 增加脚本执行权限 …

在线问诊平台开发指南:基于互联网医院系统源码的实现路径

今天&#xff0c;小编将详细讲解如何通过互联网医院系统源码开发在线问诊平台。 一、在线问诊平台的需求分析 在线问诊平的核心目标是通过互联网技术&#xff0c;实现患者与医生之间的远程交流与诊断。因此&#xff0c;在开发过程中&#xff0c;首先需要明确平台的核心功能需求…

将 hugo 博客搬迁到服务器

1. 说明 在 Ubuntu 22.04 上使用 root 账号&#xff0c;创建普通账号&#xff0c;并赋予 root 权限。 演示站点&#xff1a;https://woniu336.github.io/ 魔改hugo主题: https://github.com/woniu336/hugo-magic 2. 服务器配置 建立 git 用户 adduser git安装 git sudo apt …

SpringBoot笔记01

第1章 Spring Boot概要 1.1 SpringBoot介绍 随着动态语言的流行&#xff08;Ruby、Scala、Node.js&#xff09;, Java的开发显得格外的笨重&#xff1b;繁多的配置、低下的开 发效率、复杂的部署流程以及第三方技术整合难度大。 在上述环境下&#xff0c;Spring Boot由此诞生…