List 实现分页

1.List分页  pageSize// 数据集最大显示数目pageIndex//第几页

//分页后的数据list为要分页的list

int size = list.size() > pageSize * pageIndex ? pageSize * pageIndex: list.size();
List listPage=list.subList(pageSize * (pageIndex - 1), size);


2.hibernate分页

List<Object> list = getSession().createSQLQuery(sql).setFirstResult((pageIndex-1)*pageSize).setMaxResults(pageSize).list();



3.分页对象


/**
 * 分页对象. 包含当前页数据及分页信息
 *
 * @param <T> 翻页查询的实体对象
 */

public class PageFinder<T> implements Serializable {

private String property;// 查找属性名称
private String keyword;// 查找关键字
private String orderBy = "XXXX";// 排序字段
private OrderType orderType = OrderType.desc;// 排序方式

// 排序方式
public enum OrderType{
asc, desc
}
public String getProperty() {
return property;
}


public void setProperty(String property) {
this.property = property;
}


public String getKeyword() {
return keyword;
}


public void setKeyword(String keyword) {
this.keyword = keyword;
}

public String getOrderBy() {
return orderBy;
}


public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}

public OrderType getOrderType() {
return orderType;
}


public void setOrderType(OrderType orderType) {
this.orderType = orderType;
}
public Integer getPageNumber() {
return pageNo;
}
public void setPageNumber(int pageNo) {
this.pageNo=pageNo;
}
public Integer getTotalCount() {
return rowCount;
}
@SuppressWarnings("rawtypes")
public List getList() {
return dataList;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
public void setList(List list) {
this.dataList = list;
}
public void setTotalCount(int count){
this.rowCount=count;
}
public Integer getPageCountSize(){
if(pageSize == 0){
pageSize = 10;
}
return (rowCount - 1) / pageSize + 1;
}







/**
* 默认每页记录数
*/
private static int DEFAULT_PAGE_SIZE = 10;

/**
* 每页的记录数
*/
private int pageSize = DEFAULT_PAGE_SIZE;


/**
* 当前页中存放的数据
*/
private List<T> dataList = new ArrayList<T>();


/**
* 总记录数
*/
private int rowCount;


/**
* 页数
*/
private int pageCount;


/**
* 跳转页数
*/
private int pageNo = 1;


/**
* 是否有上一页
*/
private boolean hasPrevious = false;


/**
* 是否有下一页
*/
private boolean hasNext = false;


public PageFinder() {
}

public PageFinder(int pageNo, int rowCount) {
this(pageNo,rowCount,DEFAULT_PAGE_SIZE);
}

public PageFinder(int pageNo, int rowCount, int pageSize) {
this.pageNo = pageNo;
this.pageSize = pageSize;
this.rowCount = rowCount;
this.pageCount = getTotalPageCount();
refresh();
}


public PageFinder(int pageNo, int rowCount, List<T> dataList) {
this(pageNo,rowCount,DEFAULT_PAGE_SIZE,dataList);
}


public PageFinder(int pageNo, int rowCount,int pageSize,  List<T> dataList) {
this.pageNo = pageNo;
this.pageSize = pageSize;
this.rowCount = rowCount;
this.pageCount = getTotalPageCount();
this.dataList = dataList;
refresh();
}


/**
* 获取总页数
*/
public final int getTotalPageCount() {
if(pageSize == 0){
pageSize = 10;
}
if (rowCount % pageSize == 0){
return rowCount / pageSize;
}else{
return rowCount / pageSize + 1;
}
}


/**
* 刷新当前分页对象数据
*/
public void refresh() {
if (pageCount <= 1) {
hasPrevious = false;
hasNext = false;
} else if (pageNo == 1) {
hasPrevious = false;
hasNext = true;
} else if (pageNo == pageCount) {
hasPrevious = true;
hasNext = false;
} else {
hasPrevious = true;
hasNext = true;
}
}


/**
* 获取跳转页第一条数据在数据集的位置
*/
public int getStartOfPage() {
return (pageNo - 1) * pageSize;
}





public List<T> getDataList() {
return dataList;
}


public void setDataList(List<T> dataList) {
this.dataList = dataList;
}


public int getPageSize() {
return pageSize;
}


public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}


public boolean isHasPrevious() {
return hasPrevious;
}


public void setHasPrevious(boolean hasPrevious) {
this.hasPrevious = hasPrevious;
}


public boolean isHasNext() {
return hasNext;
}


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


public int getRowCount() {
return rowCount;
}


public void setRowCount(int rowCount) {
this.rowCount = rowCount;
}


public int getPageCount() {
return pageCount;
}


public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}


public int getPageNo() {
return pageNo;
}


public void setPageNo(int pageNo) {
this.pageNo = pageNo;
}


/**
* 文档数
*/
private int docNum;
/**
* 文档数
*/
private int videoNum;
/**
* 文档数
*/
private int exercNum;
/**
* 文档数
*/
private int examNum;
/**
* 文档数
*/
private int flashNum;

/**
* 文档数
*/
private int zipNum;
/**
* 源代码数
*/
private int codeNum;


public int getDocNum() {
return docNum;
}


public void setDocNum(int docNum) {
this.docNum = docNum;
}


public int getVideoNum() {
return videoNum;
}


public void setVideoNum(int videoNum) {
this.videoNum = videoNum;
}


public int getExercNum() {
return exercNum;
}


public void setExercNum(int exercNum) {
this.exercNum = exercNum;
}


public int getExamNum() {
return examNum;
}


public void setExamNum(int examNum) {
this.examNum = examNum;
}


public int getFlashNum() {
return flashNum;
}


public void setFlashNum(int flashNum) {
this.flashNum = flashNum;
}


public int getZipNum() {
return zipNum;
}


public void setZipNum(int zipNum) {
this.zipNum = zipNum;
}


public int getCodeNum() {
return codeNum;
}


public void setCodeNum(int codeNum) {
this.codeNum = codeNum;
}

}



3.页面

<script type="text/javascript">
$().ready( function() {
$("#XXX").pager({
pagenumber: ${pager.pageNumber},
pagecount: ${pager.pageCountSize},
buttonClickCallback: $.gotoPage
});


})
</script>
<span id="XXX"></span>
<input type="hidden" name="pager.pageNo" id="pageNumber" value="${pager.pageNumber}" />
<input type="hidden" name="pager.orderBy" id="orderBy" value="${pager.orderBy}" />
<input type="hidden" name="pager.orderType" id="order" value="${pager.orderType}" />

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值