这里以JavaWeb中的Servlet程序举例
像上图的这样一张图片,在分析后该如何做出呢?
当前页码(pageNo)在第一次进来的时候肯定是1,当它发生改变时,页面也应该发生改变
每页应该显示的数量(pageSize):这个得看页面布局自己来决定
首先我们应该考虑的是当前页码(pageNo)和每页应该显示的数量(pageSize),这两个必然是已知的
根据这两个条件,我们可以计算出其他的条件,总页码(pageTotal),总记录(pageTotalCount),以及当前页数据(items)
总页码可以由一个公式求得:
(总记录(pageTotalCount)/每页应该显示的数量(pageSize))+(总记录(pageTotalCount)/每页应该显示的数量(pageSize) > 0 ? 1 : 0)
假设总记录数是10条,每页会显示4条数据,那么按照公式
(10/4)+(10%4>0 ? 1 : 0)求得总页码为3
总记录可以用sql语句求得:select count(*) from 表名
求得该表内的数据共有多少条,就说明总记录有多少条
当前页数据,也可以用SQL语句求得(select * from 表名 limit begin,pageSize)
limit分页函数,从begin索引,开始,每次分pageSize个数据
begin可由公式(pageNo-1)* pageSize
得到的当前页数据,我们可以用一个集合保存起来
在Java中,可以用一个类来存储上面的所有数据,然后服务器端利用request域把数据共享到客户端,客户端那边可以利用jsp的技术(博主技术较烂只学到jsp、EL表达式、JSTL标签),拿到request域中的数据,然后把数据放到页面上即可
再看上一页,和下一页,在得到当前页码后,其实就很好做了,就可以看作当前页码-1和当前页码+1,但是得加个判断,因为这个页码到1和总页码就是终点了,百度这里是在当前页码为1时,让上一页隐藏起来,而在页码为总页码时,让下一页隐藏起来