Thymeleaf+Bootstrap封装分页组件

2024-08-22 23:52

本文主要是介绍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>

这篇关于Thymeleaf+Bootstrap封装分页组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1097761

相关文章

C#如何在Excel文档中获取分页信息

《C#如何在Excel文档中获取分页信息》在日常工作中,我们经常需要处理大量的Excel数据,本文将深入探讨如何利用Spire.XLSfor.NET,高效准确地获取Excel文档中的分页信息,包括水平... 目录理解Excel中的分页机制借助 Spire.XLS for .NET 获取分页信息为什么选择 S

JavaWeb 中的 Filter组件详解

《JavaWeb中的Filter组件详解》本文详细介绍了JavaWeb中的Filter组件,包括其基本概念、工作原理、核心接口和类、配置方式以及常见应用示例,Filter可以实现请求预处理、响应后... 目录JavaWeb 中的 Filter 详解1. Filter 基本概念1.1 什么是 Filter1.

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

Python实现简单封装网络请求的示例详解

《Python实现简单封装网络请求的示例详解》这篇文章主要为大家详细介绍了Python实现简单封装网络请求的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录安装依赖核心功能说明1. 类与方法概览2.NetHelper类初始化参数3.ApiResponse类属性与方法使用实

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Python用Flask封装API及调用详解

《Python用Flask封装API及调用详解》本文介绍Flask的优势(轻量、灵活、易扩展),对比GET/POST表单/JSON请求方式,涵盖错误处理、开发建议及生产环境部署注意事项... 目录一、Flask的优势一、基础设置二、GET请求方式服务端代码客户端调用三、POST表单方式服务端代码客户端调用四

Mybatis-Plus 3.5.12 分页拦截器消失的问题及快速解决方法

《Mybatis-Plus3.5.12分页拦截器消失的问题及快速解决方法》作为Java开发者,我们都爱用Mybatis-Plus简化CRUD操作,尤其是它的分页功能,几行代码就能搞定复杂的分页查询... 目录一、问题场景:分页拦截器突然 “失踪”二、问题根源:依赖拆分惹的祸三、解决办法:添加扩展依赖四、分页