分页设计类

 

package cn.edu.fudan.core.utils;

import java.util.ArrayList;
import java.util.List;

//************************************************************************
//【类 名】    分页类
/**
* 分页方法实现
* 
* @author    yuegy
* @version     2011-02-10
*/
//************************************************************************
//【作 成】      www.sh-db.com.cn    2011-02-10(R1.00)
//************************************************************************
public class Page<T> {
	private int totalRow;// 总共数据
	
	private int startRow;// 开始数据
	
	private int endRow;// 结束数据
	
	private int totalPage;// 总页数
	
	private int curPage;// 当前页
	
	private boolean hasNext;// 存在下一页
	
	private boolean hasPrev;// 存在上一页	
	
	private List<T> outData;// 页面显示数据	

	public int getTotalRow() {
		return totalRow;
	}

	public void setTotalRow(int totalRow) {
		this.totalRow = totalRow;
	}

	public int getStartRow() {
		return startRow;
	}

	public void setStartRow(int startRow) {
		this.startRow = startRow;
	}

	public int getEndRow() {
		return endRow;
	}

	public void setEndRow(int endRow) {
		this.endRow = endRow;
	}

	public int getTotalPage() {
		return totalPage;
	}

	public void setTotalPage(int totalPage) {
		this.totalPage = totalPage;
	}

	public int getCurPage() {
		return curPage;
	}

	public void setCurPage(int curPage) {
		this.curPage = curPage;
	}

	public boolean isHasNext() {
		return hasNext;
	}

	public void setHasNext(boolean hasNext) {
		this.hasNext = hasNext;
	}

	public boolean isHasPrev() {
		return hasPrev;
	}

	public void setHasPrev(boolean hasPrev) {
		this.hasPrev = hasPrev;
	}

	public List<T> getOutData() {
		return outData;
	}

	public void setOutData(List<T> outData) {
		this.outData = outData;
	}
	
	/**
	 * 页面分页数据
	 * 
	 * @param pageSize 该页面显示记录
	 * @param allSize 查询结果
	 * @param inputCurPage 当前页
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public static Page getPageInfo(int pageSize,List inputData,int inputCurPage){
		if(Util.listIsNotNull(inputData)){
			int allSize = inputData.size();			
			Page page = new Page();
			// 总共数据
			page.setTotalRow(allSize);
			// 计算总页数
			if(0 == allSize % pageSize){
				page.setTotalPage(allSize / pageSize);
			}else{
				page.setTotalPage( (allSize / pageSize) + 1 );
			}
			// 如果当前页小于等于最大页
			if(inputCurPage < page.getTotalPage()){		
				page.setCurPage( inputCurPage );
				page.setStartRow( (page.getCurPage() - 1) * pageSize );
				page.setEndRow( page.getCurPage() * pageSize - 1 );
				page.setHasNext( true );
				if(page.getCurPage() == 1){
					page.setHasPrev( false );
				}else{
					page.setHasPrev( true );
				}
			}
			// 如果当前页大于等于最大页
			if(inputCurPage >= page.getTotalPage()){		
				page.setCurPage( page.getTotalPage() );
				page.setStartRow( (page.getCurPage() - 1) * pageSize );
				page.setEndRow( page.getTotalRow() - 1 );
				page.setHasNext( false );
				if(page.getCurPage() == 1){
					page.setHasPrev( false );
				}else{
					page.setHasPrev( true );
				}
			}
			page.setOutData( new ArrayList());
			for(int i=page.getStartRow();i<=page.getEndRow() ; i++){
				page.getOutData().add(inputData.get(i));
			} 
			page.setStartRow( page.getStartRow() + 1 );
			page.setEndRow( page.getEndRow() + 1 );
			return page;
		}
		return null;
	}
	
}

转载于:https://my.oschina.net/guanyun/blog/13030

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值