写在前面

最近面试,我问了一个非常通用的问题,题目是什么呢? 题目就是,谈谈你对分页里面逻辑的理解以及如何实现的?面试题目不难,但是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分钟了解分页的那些事?相关推荐

  1. Javaweb 第15天 web练习和分页技术

    第15天 web练习和分页技术 复习day14内容: 学习新技术的思路? 分析功能的思路? 使用queryRunner操作数据库的步骤? ResultSetHandler接口常用实现类(三个重点)? ...

  2. 怎么把分钟转化成秒_一分钟短视频文案范文怎么写?短视频文案必爆公式分享(附文案范文模板)...

    本文将为你解决:一分钟短视频文案范文剧本.一分钟短视频文案范文,关于宣传酒的等 抖音上,大部分视频时长以一分钟为主,那么我们怎么设计一个一分钟短视频文案呢?在这一分钟之内,我们怎么写短视频文案脚本,才 ...

  3. Asp.net之真假分页大揭秘、使用AspNetPager实现真分页

    最近在web界面的时候,遇到了一些非常现实的问题.最让人头疼的问题就是显示数据中的书画作品.这些书画作品都会以图片的形式展示给用户.        起初做的时候并没有想太多,只按着最简单的方式将所有的 ...

  4. ChatGPT让我变成了“超人”-如何提升团队30%效能质量提高100%的阶段性总结报告

    创作背景 CHATGPT刚出现时我的内心有一万匹"马"在奔腾,我是排斥的.BS的.甚至关掉屏敝掉相关新闻.连家里电视机的插线都拨掉.因为它的表现真的伤到了我的自尊. 这样的情绪源至 ...

  5. 初级Java学习笔记总结

    java高并发解决方案:     1.页面静态:静态访问消耗的资源少             信息录入然后生成静态页面以供访问     2.数据库集群和库表散列             主-从数据库关 ...

  6. 读论文七步走!CV老司机万字长文:一篇论文需要读4遍

      视学算法报道   编辑:LRS [新智元导读]读论文对于AI新手和工程师来说可能是一件比较难的事.最近一位从业超5年的CV老司机发布了一篇万字长文,讲述了读论文七步法,从找论文到总结,每篇论文由浅 ...

  7. Python批量下载XKCD漫画只需20行命令

    XKCD是一个流行的极客漫画网站,其官网首页有一个 Prev 按钮,让用户导航到前面的漫画.如果你希望复制该网站的内容以在离线的时候阅读,那么可以手动导航至每个页面并保存.但手动下载每张漫画要花较长的 ...

  8. 命保住了!五年时间,我们也搞了一个技术中台

    题图: from Zoommy 来自:吃草的罗汉公众号 在技术圈,每年总有那么一拨人,喜欢把 "某某岗位要不要写代码" 这样的话题拿出来讨论一番. 比如,前年的话题是CTO要不要写 ...

  9. 一周飞越50万平方米,无人机检测1.5吨海滩垃圾!自动分类47种,准确率超95%

    来源:大数据文摘本文约2200字,建议阅读8分钟 在垃圾这件事上,"自觉"比科技更重要. 夏日炎炎,海滩逐渐成为大家的周末消遣. 但是小编要提醒大家,可别忘了随身带走垃圾喔. 最近 ...

  10. 新OpenSUSE的树莓派镜像

    大家好!请注意,所有的openSUSE的fans们都应该读读这篇重要的文章.你有树莓派吗?你想试试openSUSE吗?你对树莓派和openSUSE很狂热吗?想不想看看它们在一起?真让人激动,ARM版的 ...

最新文章

  1. 多媒体音量条显示异常跳动
  2. AI:2020年6月23日北京智源大会演讲分享之智能信息检索与挖掘专题论坛——09:55-10:40刘欢教授《Challenges in Combating Disinformation》
  3. Ubuntu Vi 编辑器 命令(转)
  4. NexentaStor iSCSI/ NAS 存储服务器软件图解教程(3)——NMV快速上手指南Part2
  5. 走近算法:受众行为分析与人群定向
  6. sql 单引号_SQL 语句中单引号、双引号的具体用法
  7. STEP7 MicroWIN SMART 下载程序到CPU的具体步骤详解(图文)
  8. 用Android studio搭建沃商店SDK任意支付的配置
  9. 深度学习——常用数据标注工具总结
  10. etcd系列深入浅出客户端
  11. 小米4 miui专用 Xposed安装器86版
  12. secureCRT命令行字符重叠只显示一半
  13. CF 1720 D1. Xor-Subsequence (easy version) dp 1800
  14. js中的JSON对象转换,过滤特殊字符数据
  15. 计算机科学湖北的大学排行,2015年湖北省大学最佳专业排行榜
  16. 计算机处理器的CPU主频与指令条数
  17. java判断两个数互质_AcWing 458. 比例简化-java(无需判断互质)
  18. C1-见习工程师(计算机通识)
  19. python画小猪_利用python画小猪佩奇
  20. 为什么Word2007在编辑文字鼠标点击一下整篇文字的背景就立刻变为灰色的

热门文章

  1. springcloudalibaba 架构图_Spring Cloud Alibaba 架构实战
  2. Pareidolia — AI的艺术教学
  3. 自我监督学习和无监督学习_弱和自我监督的学习-第4部分
  4. 九宫格c语言实验报告,9X9,九宫格测试,C编程。
  5. 计算机组装常用工具有锤子,工具箱中常用的五金工具有哪些?
  6. 同步现象 心理学_「心理学学了些什么?」基础心理学知识1
  7. xml 标签带有号php,php操作xml入门之xml基本介绍及xml标签元素
  8. 我需要一个媒体服务器来进行一对多的WebRTC广播吗?
  9. VNC服务的使用和使用qemu-img工具创建更多格式的磁盘映像文件
  10. ping命令两种返回信息的区别