在上一节中我们简单观察与分析了仿baidu,google的查询分页技术,有很多学生纷纷的给我来了邮件,期待着使用Java技术的实现.在这里很感谢大家对我的关注,我会一如既往的在此平台之上发布自己的授课中一些知识点的总结.下将仿baidu,google查询分页技术的实现方式一种分享给大家,如有问题请及时发送邮件.希望同学们在这新的学期中有更大的收获。
在这里我简单说说我的实现思路,我将整个分页的技术全部封装在了一个Pagination的JavaBean中.具体代码如下:
在这里我简单说说我的实现思路,我将整个分页的技术全部封装在了一个Pagination的JavaBean中.具体代码如下:
- packagecn.csdn.util;
- importjava.util.List;
- /**
- *
- *@authorredarmy_chen
- *
- *@param<T>
- */
- publicclassPagination<T>{
- //分页信息
- privateintnowpage;//当前页
- privateintcountrecord;//总记录
- privateintcountpage;//总页数
- publicstaticfinalintPAGESIZE=5;//每页显示的记录数
- privateintstartpage;//页面中的起始页
- privateintendpage;//页面中的结束页
- privatefinalintSHOWPAGE=6;//页面中显示的总页数baidu,google显示的总页数是20
- //在测试我们才用6来测试
- privateList<T>allentities;
- privateStringurl;
- /**根据当前页及总记录数来构造分页对象*/
- publicPagination(intnowpage,intcountrecord){
- this.nowpage=nowpage;
- this.countrecord=countrecord;
- /**计算总页数*/
- this.countpage=this.countrecord%this.PAGESIZE==0?this.countrecord
- /this.PAGESIZE
- :this.countrecord/this.PAGESIZE+1;
- /**计算startpage与endpage的值*/
- /**总页数数是否小于4*/
- if(this.countpage<(this.SHOWPAGE/2+1)){
- this.startpage=1;//页面中起始页就是1
- this.endpage=this.countpage;//页面中的最终页就是总页数
- }else{
- /**else中是总页数大于4的情况*/
- /**首先当前页的值是否小于等于4*/
- if(this.nowpage<=(this.SHOWPAGE/2+1)){
- this.startpage=1;
- this.endpage=this.nowpage+2;
- /**判断页面的最终页是否大于总页数*/
- if(this.endpage>=this.countpage){
- this.endpage=this.countpage;
- }
- }else{
- this.startpage=this.nowpage-3;
- this.endpage=this.nowpage+2;
- if(this.endpage>=this.countpage){
- this.endpage=this.countpage;
- if(this.countpage<this.SHOWPAGE){
- this.startpage=1;
- }else{
- this.startpage=this.endpage-5;
- }
- }
- }
- }
- }
- publicintgetNowpage(){
- returnnowpage;
- }
- publicvoidsetNowpage(intnowpage){
- this.nowpage=nowpage;
- }
- publicintgetCountrecord(){
- returncountrecord;
- }
- publicvoidsetCountrecord(intcountrecord){
- this.countrecord=countrecord;
- }
- publicintgetCountpage(){
- returncountpage;
- }
- publicvoidsetCountpage(intcountpage){
- this.countpage=countpage;
- }
- publicintgetStartpage(){
- returnstartpage;
- }
- publicvoidsetStartpage(intstartpage){
- this.startpage=startpage;
- }
- publicintgetEndpage(){
- returnendpage;
- }
- publicvoidsetEndpage(intendpage){
- this.endpage=endpage;
- }
- publicList<T>getAllentities(){
- returnallentities;
- }
- publicvoidsetAllentities(List<T>allentities){
- this.allentities=allentities;
- }
- publicStringgetUrl(){
- returnurl;
- }
- publicvoidsetUrl(Stringurl){
- this.url=url;
- }
- }