Java实现的分页工具类与用法示例
本文实例讲述了Java实现的分页工具类与用法。分享给大家供大家参考,具体如下:
今天闲来没事,写了一个页面的分页工具类,具有很好的兼容性与实用性哦。
不管怎么样,先来瞧一瞧:
packagecom.bw.utils; /** *分页工具类 * *@authorH.ros * */ publicclassPageUtils2{ //当前页(从页面获取的当前页码,未计算) privateintcurrentPage; //前一页 privateintprevPage; //下一页 privateintnextPage; //尾页 privateintlastPage; //总记录数 privateintcount; //每页的条数 privateintpageSize=3; //分页计入数(使用时调用的初始页,计算后) privateintpageRecord; //页面分页模型(传入页面使用的DOM) privateStringpage; //有参构造器 publicPageUtils2(StringcurrentPage,intcount,intpageSize){ init(currentPage,count,pageSize); initLastPage(); initCurrentPage(); initPrevPage(); initNextPage(); initPageRecord(); initPage(); } //初始化三个重要元素 privatevoidinit(StringcurrentPage,intcount,intpageSize){ if(currentPage==null||currentPage==""||currentPage=="0"){ currentPage="1"; } this.currentPage=Integer.parseInt(currentPage); this.count=count; this.pageSize=pageSize; } //初始化尾页 privatevoidinitLastPage(){ if(count%pageSize==0){ lastPage=count/pageSize; }else{ lastPage=count/pageSize+1; } } //初始化并矫正当前页(防止外部访问出错) privatevoidinitCurrentPage(){ if(currentPage<1){ currentPage=1; }elseif(currentPage>lastPage){ currentPage=lastPage; } } //初始化上一页 privatevoidinitPrevPage(){ if(currentPage!=1){ prevPage=currentPage-1; }else{ prevPage=1; } } //初始化下一页 privatevoidinitNextPage(){ if(currentPage!=lastPage){ nextPage=currentPage+1; }else{ nextPage=lastPage; } } //初始化分页计入数 privatevoidinitPageRecord(){ pageRecord=(currentPage-1)*pageSize; if(pageRecord<0){ pageRecord=0; } } //初始化页面分页模型(按键中的class属性是bootstrap的样式) privatevoidinitPage(){ page="第"+currentPage+"/"+lastPage+"页,共"+count+"条记录。"; page+=""; page+=" "; page+=" "; page+=" "; } /* *对外访问通道 */ publicintgetCurrentPage(){ returncurrentPage; } publicintgetPrevPage(){ returnprevPage; } publicintgetNextPage(){ returnnextPage; } publicintgetLastPage(){ returnlastPage; } publicintgetCount(){ returncount; } publicintgetPageSize(){ returnpageSize; } publicintgetPageRecord(){ returnpageRecord; } publicStringgetPage(){ returnpage; } }
使用方法:
里面很多的地方都会计算好,使用时只用传入三个参数:
//currentPage是从前台传来的当前页码,count是数据的总统计数,pageSize是每页显示的条数, //count必须是数据中的查询结果哦。这样才能与前台保持页码一致。 PageUtilsutil=newPageUtils(currentPage,count,pageSize);
然后直接将它的一个Page属性传入前台页面就行:
mv.addObject("page",util.getPage());
在前台页面直接用EL表达式接收解析:
${page}
在js中要设置一个函数:
functionpage(){} //因为工具类中添加的是onclick的js点击事件,我们必须使用js的一个函数来进行后台处理; //如果不想使用,在工具类中删除即可。
若有不对的地方,还望大神们不吝赐教。
更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》
希望本文所述对大家java程序设计有所帮助。