5分钟了解分页的那些事?
写在前面
最近面试,我问了一个非常通用的问题,题目是什么呢? 题目就是,谈谈你对分页里面逻辑的理解以及如何实现的?面试题目不难,但是90%的人讲不清楚分页逻辑,对分页的一些细节问题更是回答的很模糊。不是很清晰。下面借此机会给大家讲讲分页有哪些逻辑。
分页的那些事
如上图所示: 分页包含很多小细节,
每页展示10条,多余的下一页展示,这里就涉及的知识点有,是否采取逻辑分页还是物理分页,物理分页的实现方式有哪些,各位自行百度,这里主要讲前台页面如何编写分页的逻辑
<#– 是否上一页–>
<#if page.hasPreviousPage>
<li><a class=”pointer” data-page=”1″>首页</i></a></li>
<li><a class=”pointer” data-page=”${page.prePage}”>上一页</i></a></li>
</#if>
<#–处理开头部分逻辑 开头省略号实现逻辑–>
<#if (page.navigateFirstPage = 2)>
<li><a class=”pointer” data-page=”1″>1</a></li>
<#elseif (page.navigateFirstPage > 2)>
<li><a class=”pointer” data-page=”1″>1</a></li>
<li>…</li>
</#if>
<#– 是否下一页–>
<#if page.hasNextPage>
<li><a class=”pointer active” data-page=”${page.nextPage}”>下一页</i></a></li>
<li><a class=”pointer” data-page=”${page.pages}”>尾页</i></a></li>
</#if>
<#–处理结果部分显示的逻辑 开头省略号实现逻辑–>
<#if (page.navigateLastPage = page.pages-1)>
<li><a class=”pointer” data-page=”${page.pages}”>${page.pages}</a></li>
<#elseif (page.navigateLastPage < page.pages-1)>
<li>…</li>
<li><a class=”pointer” data-page=”${page.pages}”>${page.pages}</a></li>
</#if>
<#– 中间显示页数–>
<#list page.navigateFirstPage..page.navigateLastPage as item>
<li><a ${(page.pageNum == item)?string(‘class=”pointer active”‘,’class=”pointer” data-page=”${item?c}”‘)}>${item?c}</a></li>
</#list>
<#– 显示总页数–>
<li> 共 ${page.pages} 页 </li>
分页的实现
上面分页的逻辑已经讲的比较清晰,逻辑需求理解清楚了,实现起来就简单了,这里要提醒大家的是,一个系统很多地方都有可能用到分页,所以大家最好封装成一个通用的组件,以便项目中实现复用。还有最后啰嗦一句,分页虽然不难,但是做一个通用的且体验感很强的分页组件需要大家去下一翻功夫。
5分钟了解分页的那些事?相关推荐
- Javaweb 第15天 web练习和分页技术
第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...
- 怎么把分钟转化成秒_一分钟短视频文案范文怎么写?短视频文案必爆公式分享(附文案范文模板)...
本文将为你解决:一分钟短视频文案范文剧本.一分钟短视频文案范文,关于宣传酒的等 抖音上,大部分视频时长以一分钟为主,那么我们怎么设计一个一分钟短视频文案呢?在这一分钟之内,我们怎么写短视频文案脚本,才 ...
- Asp.net之真假分页大揭秘、使用AspNetPager实现真分页
最近在web界面的时候,遇到了一些非常现实的问题.最让人头疼的问题就是显示数据中的书画作品.这些书画作品都会以图片的形式展示给用户. 起初做的时候并没有想太多,只按着最简单的方式将所有的 ...
- ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告
创作背景 CHATGPT刚出现时我的内心有一万匹"马"在奔腾,我是排斥的.BS的.甚至关掉屏敝掉相关新闻.连家里电视机的插线都拨掉.因为它的表现真的伤到了我的自尊. 这样的情绪源至 ...
- 初级Java学习笔记总结
java高并发解决方案: 1.页面静态:静态访问消耗的资源少 信息录入然后生成静态页面以供访问 2.数据库集群和库表散列 主-从数据库关 ...
- 读论文七步走!CV老司机万字长文:一篇论文需要读4遍
视学算法报道 编辑:LRS [新智元导读]读论文对于AI新手和工程师来说可能是一件比较难的事.最近一位从业超5年的CV老司机发布了一篇万字长文,讲述了读论文七步法,从找论文到总结,每篇论文由浅 ...
- Python批量下载XKCD漫画只需20行命令
XKCD是一个流行的极客漫画网站,其官网首页有一个 Prev 按钮,让用户导航到前面的漫画.如果你希望复制该网站的内容以在离线的时候阅读,那么可以手动导航至每个页面并保存.但手动下载每张漫画要花较长的 ...
- 命保住了!五年时间,我们也搞了一个技术中台
题图: from Zoommy 来自:吃草的罗汉公众号 在技术圈,每年总有那么一拨人,喜欢把 "某某岗位要不要写代码" 这样的话题拿出来讨论一番. 比如,前年的话题是CTO要不要写 ...
- 一周飞越50万平方米,无人机检测1.5吨海滩垃圾!自动分类47种,准确率超95%
来源:大数据文摘本文约2200字,建议阅读8分钟 在垃圾这件事上,"自觉"比科技更重要. 夏日炎炎,海滩逐渐成为大家的周末消遣. 但是小编要提醒大家,可别忘了随身带走垃圾喔. 最近 ...
- 新OpenSUSE的树莓派镜像
大家好!请注意,所有的openSUSE的fans们都应该读读这篇重要的文章.你有树莓派吗?你想试试openSUSE吗?你对树莓派和openSUSE很狂热吗?想不想看看它们在一起?真让人激动,ARM版的 ...
最新文章
- 多媒体音量条显示异常跳动
- AI:2020年6月23日北京智源大会演讲分享之智能信息检索与挖掘专题论坛——09:55-10:40刘欢教授《Challenges in Combating Disinformation》
- Ubuntu Vi 编辑器 命令(转)
- NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
- 走近算法:受众行为分析与人群定向
- sql 单引号_SQL 语句中单引号、双引号的具体用法
- STEP7 MicroWIN SMART 下载程序到CPU的具体步骤详解(图文)
- 用Android studio搭建沃商店SDK任意支付的配置
- 深度学习——常用数据标注工具总结
- etcd系列深入浅出客户端
- 小米4 miui专用 Xposed安装器86版
- secureCRT命令行字符重叠只显示一半
- CF 1720 D1. Xor-Subsequence (easy version) dp 1800
- js中的JSON对象转换,过滤特殊字符数据
- 计算机科学湖北的大学排行,2015年湖北省大学最佳专业排行榜
- 计算机处理器的CPU主频与指令条数
- java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)
- C1-见习工程师(计算机通识)
- python画小猪_利用python画小猪佩奇
- 为什么Word2007在编辑文字鼠标点击一下整篇文字的背景就立刻变为灰色的
热门文章
- springcloudalibaba 架构图_Spring Cloud Alibaba 架构实战
- Pareidolia — AI的艺术教学
- 自我监督学习和无监督学习_弱和自我监督的学习-第4部分
- 九宫格c语言实验报告,9X9,九宫格测试,C编程。
- 计算机组装常用工具有锤子,工具箱中常用的五金工具有哪些?
- 同步现象 心理学_「心理学学了些什么?」基础心理学知识1
- xml 标签带有号php,php操作xml入门之xml基本介绍及xml标签元素
- 我需要一个媒体服务器来进行一对多的WebRTC广播吗?
- VNC服务的使用和使用qemu-img工具创建更多格式的磁盘映像文件
- ping命令两种返回信息的区别