java 自定义分页工具类 PageBean

转载自:https://blog.csdn.net/guobinhui/article/details/80394707

叙述

众所周知,web项目基本上都会用到动态分页功能,下面给大家整理写一个完整的PageBean工具类,大家把完整代码拷到自己项目里就可以直接用,本实例也适用于APP项目的翻页。

代码

import java.util.List;
 
/**
 * 作者:guobinhui <br>
 * 创建时间:2018年5月21日 <br>
 * 描述:动态分页Bean
 */
public class PageBean <T>{
 
	private List<T> pageData;
	private Integer currentPage = Integer.valueOf(1);
	private Integer pageSize = Integer.valueOf(10);
	private Integer totalCount;
	
     public int getPageCount(){
	if (this.totalCount.intValue() % this.pageSize.intValue() == 0) {
	     return this.totalCount.intValue() / this.pageSize.intValue();
	 }
	     return this.totalCount.intValue() / this.pageSize.intValue() + 1;
     }
	   
     public PageBean(List<T> pageData, Integer totalCount) {
	    this.pageData = pageData;
	    this.totalCount = totalCount;
     }
     
     public PageBean() {}
	     
     public boolean isFirst()
     {
         return (this.currentPage.intValue() == 1) || (this.totalCount.intValue() == 0);
     }
	     
     public boolean isLast() {
    	 return (this.totalCount.intValue() == 0) || (this.currentPage.intValue() >= getPageCount());
     }
 
     public boolean isHasNext()
     {
    	 return this.currentPage.intValue() < getPageCount();
     }
	     
     public boolean isHasPrev() {
    	 return this.currentPage.intValue() > 1;
     }  
     public Integer getNextPage()
     {
	     if (this.currentPage.intValue() >= getPageCount()) {
	       return Integer.valueOf(getPageCount());
	       }
	     return Integer.valueOf(this.currentPage.intValue() + 1);
     }
	     
     public Integer getPrevPage() {
	     if (this.currentPage.intValue() <= 1) {
	      return Integer.valueOf(1);
	       }	       
	     return Integer.valueOf(this.currentPage.intValue() - 1);
     }
	     
     public List<T> getPageData() {
	     return this.pageData;
	     }
	     
     public void setPageData(List<T> pageData) {
	     this.pageData = pageData;
     }
	     
     public Integer getCurrentPage() {
    	 return this.currentPage;
     }
     
     public void setCurrentPage(Integer currentPage) {
    	 this.currentPage = currentPage;
     }
	     
     public Integer getPageSize() {
    	 return this.pageSize;
     }
     
     public void setPageSize(Integer pageSize) {
    	 this.pageSize = pageSize;
     }		
	     
     public Integer getTotalCount() {
    	 return this.totalCount;
     }
     
     public void setTotalCount(Integer totalCount) {
    	 this.totalCount = totalCount;
     }
}

项目service中,只需要根据参数page和pageSize这2个参数,就可以查出符合条件的记录(List<T>),和总数totalCount,把这2个参数传入PageBean这个构造器中即可返回分页的所有数据,代码示例如下:

最终返回的数据结构如下:

{ "data":{
        "first": true,
        "hasNext": false,
        "hasPrev": false,
        "last": true,
        "nextPage": 1,
        "currentPage": 1,
        "pageCount": 1,
        "pageSize": 20,
        "prevPage": 1,
        "totalCount ": 3,
        "pageData":[{
             "voipId ":"2142343254353456436",
             "voipStateDate ":"2018-04-23 14:02:00",
             "objName":"guoxiansheng",
             "voipStatus":1 
        }]
   },
   "errorCode":10000,
   "erorInfo":"创建成功"
}

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值