Pagination类
package com.paic.bics.core.mybatis.page; import java.util.List; @SuppressWarnings("serial") public class Pagination<T> extends SimplePage implements java.io.Serializable, Paginable { /** * 当前页的数据 */ private List<T> list; public Pagination() { } public Pagination(int pageNo, int pageSize, int totalCount) { super(pageNo, pageSize, totalCount); } @SuppressWarnings("unchecked") public Pagination(int pageNo, int pageSize, int totalCount, List list) { super(pageNo, pageSize, totalCount); this.list = list; } public int getFirstResult() { return (pageNo - 1) * pageSize; } public List<T> getList() { return list; } public void setList(List<T> list) { this.list = list; } /**paic.bics SEO 翻页版本*/ public String getWebPage(String page){ StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>"); if(this.getPageNo()>1){ if(this.getPageNo()>5){ pageHtml.append("<li><a href='javascript:;' onclick='"+ page +"'>首页</a></li>"); } pageHtml.append("<li><a href='"+ page +""+(this.getPageNo() -1) +"'>上一页</a></li>"); } for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) { if (this.getPageNo() == i) { pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>"); }else{ pageHtml.append("<li><a href='"+ page +""+ i +"'>"+i+"</a></li>"); } } if(this.getPageNo() < this.getTotalPage()){ pageHtml.append("<li><a href='"+ page +""+(this.getPageNo()+1) +"'>下一页</a></li>"); } pageHtml.append("</ul>"); return pageHtml.toString(); } /**Ajxa翻页*/ public String getSiAjaxPageHtml(){ StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>"); if(this.getPageNo()>1){ if(this.getPageNo()>5){ pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax(1)'>首页</a></li>"); } pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax("+(this.getPageNo() - 1)+")'>上一页</a></li>"); } for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) { if (this.getPageNo() == i) { pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>"); }else{ pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax("+i+")'>"+i+"</a></li>"); } } if(this.getPageNo() < this.getTotalPage()){ pageHtml.append("<li><a href='javascript:;' onclick='goPageByAjax("+(this.getPageNo() + 1)+")'>下一页</a></li>"); } pageHtml.append("</ul>"); return pageHtml.toString(); } /**普通翻页*/ public String getPageHtml(){ StringBuffer pageHtml = new StringBuffer("<ul class='pagination'>"); if(this.getPageNo()>1){ if(this.getPageNo()>5){ pageHtml.append("<li><a href='javascript:;' onclick='_submitform(1)'>首页</a></li>"); } pageHtml.append("<li><a href='javascript:;' onclick='_submitform("+(this.getPageNo() - 1)+")'>上一页</a></li>"); } for (int i = (this.getPageNo()-2<=0?1:this.getPageNo()-2),no = 1; i <= this.getTotalPage()&& no <6 ; i++,no++) { if (this.getPageNo() == i) { pageHtml.append("<li class='active'><a href='javascript:void(0);' >"+i+"</a></li>"); }else{ pageHtml.append("<li><a href='javascript:;' onclick='_submitform("+i+")'>"+i+"</a></li>"); } } if(this.getPageNo() < this.getTotalPage()){ pageHtml.append("<li><a href='javascript:;' onclick='_submitform("+(this.getPageNo() + 1)+")'>下一页</a></li>"); } pageHtml.append("</ul>"); pageHtml.append("<script>"); pageHtml.append(" function _submitform(pageNo){"); pageHtml.append(" $("#formId").append($("<input type='hidden' value='" + pageNo +"' name='pageNo'>")).submit();"); pageHtml.append(" }"); pageHtml.append("</script>"); return pageHtml.toString(); } }
SimplePage.java
package com.paic.bics.core.mybatis.page; public class SimplePage implements Paginable { private static final long serialVersionUID = 1L; public static final int DEF_COUNT = 20; public SimplePage() { } public SimplePage(int pageNo, int pageSize, int totalCount) { if (totalCount <= 0) { this.totalCount = 0; } else { this.totalCount = totalCount; } if (pageSize <= 0) { this.pageSize = DEF_COUNT; } else { this.pageSize = pageSize; } if (pageNo <= 0) { this.pageNo = 1; } else { this.pageNo = pageNo; } if ((this.pageNo - 1) * this.pageSize >= totalCount) { this.pageNo = totalCount / pageSize; if(this.pageNo==0){ this.pageNo = 1 ; } } } /** * 调整分页参数,使合理化 */ public void adjustPage() { if (totalCount <= 0) { totalCount = 0; } if (pageSize <= 0) { pageSize = DEF_COUNT; } if (pageNo <= 0) { pageNo = 1; } if ((pageNo - 1) * pageSize >= totalCount) { pageNo = totalCount / pageSize; } } public int getPageNo() { return pageNo; } public int getPageSize() { return pageSize; } public int getTotalCount() { return totalCount; } public int getTotalPage() { int totalPage = totalCount / pageSize; if (totalCount % pageSize != 0 || totalPage == 0) { totalPage++; } return totalPage; } public boolean isFirstPage() { return pageNo <= 1; } public boolean isLastPage() { return pageNo >= getTotalPage(); } public int getNextPage() { if (isLastPage()) { return pageNo; } else { return pageNo + 1; } } public int getPrePage() { if (isFirstPage()) { return pageNo; } else { return pageNo - 1; } } protected int totalCount = 0; protected int pageSize = 20; protected int pageNo = 1; public void setTotalCount(int totalCount) { this.totalCount = totalCount; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public void setPageNo(int pageNo) { this.pageNo = pageNo; } protected int filterNo; public int getFilterNo() { return filterNo; } public void setFilterNo(int filterNo) { this.filterNo = filterNo; } }
Paginable.java
package com.paic.bics.core.mybatis.page; public interface Paginable { /** * 总记录数 * * @return */ public int getTotalCount(); /** * 总页数 * * @return */ public int getTotalPage(); /** * 每页记录数 * * @return */ public int getPageSize(); /** * 当前页号 * * @return */ public int getPageNo(); /** * 是否第一页 * * @return */ public boolean isFirstPage(); /** * 是否最后一页 * * @return */ public boolean isLastPage(); /** * 返回下页的页号 */ public int getNextPage(); /** * 返回上页的页号 */ public int getPrePage(); }