importjava.util.ArrayList;importjava.util.List;/***
*@authorcheney
*
* @date Aug 31, 2012*/
public class PageModel{private int page = 1; //当前页
public int totalPages = 0; //总页数
private int pageRecorders;//每页5条数据
private int totalRows = 0; //总数据数
private int pageStartRow = 0;//每页的起始数
private int pageEndRow = 0; //每页显示数据的终止数
private boolean hasNextPage = false; //是否有下一页
private boolean hasPreviousPage = false; //是否有前一页
private Listlist;/***
*@paramlist
*@parampageRecorders*/
public PageModel(List list, intpageRecorders) {
init(list, pageRecorders);//通过对象集,记录总数划分
}/** */
/*** 初始化list,并告之该list每页的记录数
*
*@paramlist
*@parampageRecorders*/
public void init(List list, intpageRecorders) {this.pageRecorders =pageRecorders;this.list =list;
totalRows=list.size();
hasPreviousPage= false;if ((totalRows % pageRecorders) == 0) {
totalPages= totalRows /pageRecorders;
}else{
totalPages= totalRows / pageRecorders + 1;
}if (page >=totalPages) {
hasNextPage= false;
}else{
hasNextPage= true;
}if (totalRows
}else{this.pageStartRow = 0;this.pageEndRow =pageRecorders;
}
}publicString displayForPage(String method) {
StringBuffer sb= newStringBuffer();
sb.append("
");//判断是否有上一页if (this.isHasPreviousPage()) {
sb.append("上一页");
}else{
sb.append("上一页");
}//中间显示
for (int i = 1; i <= this.getTotalPages(); i++) {
String spanClzz= "
+ method + "('" + String.valueOf(i) + "');return false;\">"
+ i + "
";if (this.page ==i) {spanClzz= "" + i + "";
}
sb.append(spanClzz);//当大于9页数的时候才进行分页显示
if (this.getTotalPages() - 2 > 7) {if (i == 5) {
i= this.getTotalPages() - 2;
sb.append("...");
}
}
}//判断是否有下一页
if (this.isHasNextPage()) {
sb.append("下一页");
}else{
sb.append("下一页");
}
sb.append("
");returnsb.toString();}publicString displayForPage() {
StringBuffer sb= newStringBuffer();
sb.append("
");//判断是否有上一页if (this.isHasPreviousPage()) {
sb
.append("
+ String.valueOf(this.getPage() - 1)+ "');return false;\">上一页
");}else{
sb.append("上一页");
}//中间显示
for (int i = 1; i <= this.getTotalPages(); i++) {
String spanClzz= "
+ String.valueOf(i) + "');return false;\">" + i + "
";if (this.page ==i) {spanClzz= "" + i + "";
}
sb.append(spanClzz);//当大于9页数的时候才进行分页显示
if (this.getTotalPages() - 2 > 7) {if (i == 5) {
i= this.getTotalPages() - 2;
sb.append("...");
}
}
}//判断是否有下一页
if (this.isHasNextPage()) {
sb
.append("
+ String.valueOf(this.getPage() + 1)+ "');return false;\">下一页
");}else{
sb.append("下一页");
}
sb.append("
");returnsb.toString();}//判断要不要分页
public booleanisNext() {return list.size() > 5;
}public void setHasPreviousPage(booleanhasPreviousPage) {this.hasPreviousPage =hasPreviousPage;
}/***
*@return
*/
public ListgetNextPage() {
page= page + 1;
disposePage();returngetObjects(page);
}/*** 处理分页*/
private voiddisposePage() {if (page == 0) {
page= 1;
}if ((page - 1) > 0) {
hasPreviousPage= true;
}else{
hasPreviousPage= false;
}if (page >=totalPages) {
hasNextPage= false;
}else{
hasNextPage= true;
}
}/*** 上一页
*
*@return
*/
public ListgetPreviousPage() {
page= page - 1;if ((page - 1) > 0) {
hasPreviousPage= true;
}else{
hasPreviousPage= false;
}if (page >=totalPages) {
hasNextPage= false;
}else{
hasNextPage= true;
}returngetObjects(page);
}/*** 获取第几页的内容
*
*@parampage
*@return
*/
public List getObjects(intpage) {if (page == 0) {this.setPage(1);
page= 1;
}else{this.setPage(page);
}this.disposePage();if (page * pageRecorders < totalRows) {//判断是否为最后一页
pageEndRow = page *pageRecorders;
pageStartRow= pageEndRow -pageRecorders;
}else{
pageEndRow=totalRows;
pageStartRow= pageRecorders * (totalPages - 1);
}
List objects = null;if (!list.isEmpty()) {
objects=list.subList(pageStartRow, pageEndRow);
}returnobjects;
}/*** 第一页
*
*@return
*/
public ListgetFistPage() {if (this.isNext()) {return list.subList(0, pageRecorders);
}else{returnlist;
}
}/***@returnthe page*/
public intgetPage() {returnpage;
}/***@parampage
* the page to set*/
public void setPage(intpage) {this.page =page;
}/***@returnthe totalPages*/
public intgetTotalPages() {returntotalPages;
}/***@paramtotalPages
* the totalPages to set*/
public void setTotalPages(inttotalPages) {this.totalPages =totalPages;
}/***@returnthe pageRecorders*/
public intgetPageRecorders() {returnpageRecorders;
}/***@parampageRecorders
* the pageRecorders to set*/
public void setPageRecorders(intpageRecorders) {this.pageRecorders =pageRecorders;
}/***@returnthe totalRows*/
public intgetTotalRows() {returntotalRows;
}/***@paramtotalRows
* the totalRows to set*/
public void setTotalRows(inttotalRows) {this.totalRows =totalRows;
}/***@returnthe pageStartRow*/
public intgetPageStartRow() {returnpageStartRow;
}/***@parampageStartRow
* the pageStartRow to set*/
public void setPageStartRow(intpageStartRow) {this.pageStartRow =pageStartRow;
}/***@returnthe pageEndRow*/
public intgetPageEndRow() {returnpageEndRow;
}/***@parampageEndRow
* the pageEndRow to set*/
public void setPageEndRow(intpageEndRow) {this.pageEndRow =pageEndRow;
}/***@returnthe hasNextPage*/
public booleanisHasNextPage() {returnhasNextPage;
}/***@paramhasNextPage
* the hasNextPage to set*/
public void setHasNextPage(booleanhasNextPage) {this.hasNextPage =hasNextPage;
}/***@returnthe list*/
public ListgetList() {returnlist;
}/***@paramlist
* the list to set*/
public void setList(Listlist) {this.list =list;
}/***@returnthe hasPreviousPage*/
public booleanisHasPreviousPage() {returnhasPreviousPage;
}/**
* @param args*/
public static voidmain(String[] args) {
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
list.add("f");
list.add("g");
list.add("h");
list.add("h");
list.add("i");
list.add("j");
System.out.println(list.size());
PageModel pm = new PageModel(list, 3);//每页显示条数
pm.getObjects(1);
System.out.println(pm.displayForPage("disResult"));
}
}
更多推荐
java 分页最后一页_java分页之页面分页
发布评论