java分页_java分页之页面分页

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"));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值