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程序设计有所帮助。