package org.jfw.util; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class PageQueryResult { private int total; private int pageNo = 1; private int pageSize; public int getTotal() { return total; } public void setTotal(int total) { this.total = total; } public int getPageNo() { return pageNo; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public List getData() { return data; } public void setData(List data) { this.data = data; } private List data; public static PageQueryResult build(List list, int pageSize, int pageNo) { PageQueryResult ret = new PageQueryResult(); ret.setTotal(list.size()); pageSize = Math.max(1, pageSize); pageNo = Math.max(1, pageNo); if (list.isEmpty()) { ret.setData(list); ret.setPageNo(pageNo); ret.setPageSize(1); } else if (pageNo == 1) { ret.setPageNo(pageNo); ret.setPageSize(pageSize); ret.setData(list.subList(0,Math.min(list.size(), pageSize))); } else { int tps = list.size() / pageSize; if (list.size() % pageSize != 0) { ++tps; } if (pageNo > tps) { pageNo = tps; } ret.setPageNo(pageNo); ret.setPageSize(pageSize); int begin = pageNo * pageSize - pageSize; ret.setData(list.subList(begin,Math.min(list.size(), begin + pageSize))); } return ret; } public static void main(String[] args) { List list = new LinkedList(); for(int i = 0 ; i < 14;++i) list.add("a"); PageQueryResult.build(list,10,2); new PageQueryResult().setData(Collections. emptyList()); } }