仿百度分页java_java仿百度分页

最近因为业务需要,写了个仿百度的分页工具类,略有所感,贴出来供大家参考、指正

其实 分页工具类并不难写,主要弄清楚以下几件事,就可以轻松写出分页

1、当前页(nowPage)如何获得

2、总页数(totalPage)如何获得

3、页面上起始页(startPage)如何计算得出

4、页面上结束页(endPage)如何计算得出

5、查询的条件是什么?如何通过页面将查询条件赋给相应类

6、如何根据查询条件查询出对象数组?这个数组(一般用集合list来做)用来在页面上作循环打印

7、分页机制。我贴出的代码是我仿百度的分页机制。页面显示10个页码,每页显示5条数据。至于这个机制,自己研究一下就很容易懂得。大体意思就是,当前页总位于中间位置,显示页数是10

8、信心——相信自己一定能写出很好的分页!

import java.util.List;

import com.cmnet.www.bean.Page;

/**

* 分页工具

*

* @author Jasper

*

*/

public class Pagination {

private int nowPage;// 当前页

private int startPage;// 起始页

private int endPage;// 结束页

private int totalRecord;// 总记录数

private int totalPage;// 总页数

private List objects;// 根据条件查出的对象集合

private Conditions conditions;// 查询条件

public static final int PAGESIZE = 5;// 每页显示的条数

public static final int SHOWPAGES = 10;// 每页显示的页数

public Pagination() {

}

/**

* 分页方法

* 通过这个方法,得到两个数据——startPage和endPage

* 页面上的页码就是根据这两个数据处理后显示

* @param nowPage当前页

* @param totalPage总页数

*/

public void paginationTool(int nowPage, int totalPage) {

this.nowPage = nowPage;

this.totalPage = totalPage;

/**

* 计算startPage与endPage的值

*

*/

if (this.totalPage < SHOWPAGES) {

/** if中是总页数小于SHOWPAGES的情况 */

this.startPage = 1;

this.endPage = totalPage;

} else {

/** else中是总页数大于SHOWPAGES的情况 */

if (this.nowPage <= SHOWPAGES / 2 + 1) {

this.startPage = 1;

this.endPage = SHOWPAGES;

} else {

this.startPage = this.nowPage - (SHOWPAGES / 2);

this.endPage = this.nowPage + (SHOWPAGES / 2 - 1);

if (this.endPage >= this.totalPage) {

this.endPage = this.totalPage;

this.startPage = this.totalPage - SHOWPAGES + 1;

}

}

}

}

public Conditions getConditions() {

return conditions;

}

public void setConditions(Conditions conditions) {

this.conditions = conditions;

}

public int getNowPage() {

return nowPage;

}

public void setNowPage(int nowPage) {

this.nowPage = nowPage;

}

public int getTotalRecord() {

return totalRecord;

}

public void setTotalRecord(int totalRecord) {

this.totalRecord = totalRecord;

}

public int getTotalPage() {

return totalPage;

}

public void setTotalPage(int totalPage) {

this.totalPage = totalPage;

}

public List getObjects() {

return objects;

}

public void setObjects(List objects) {

this.objects = objects;

}

public static int getShowpages() {

return SHOWPAGES;

}

public int getStartPage() {

return startPage;

}

public void setStartPage(int startPage) {

this.startPage = startPage;

}

public int getEndPage() {

return endPage;

}

public void setEndPage(int endPage) {

this.endPage = endPage;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值