/**
* www.dhgate.com copyright reserved.
*/
package com.dhgate.util;
import java.util.List;
/**
* 分页对象。一个分页对象包含查询的结果集<list>和分页信息pageBean
* @author sunbaoming
*
*/
public class Page implements java.io.Serializable {
private static final long serialVersionUID = -5491862383942862703L;
/** 查询结果 */
private List result;
/** 分页信息Bean */
private PageBean pageBean;
/**
* (空)
*/
public Page() {}
/**
* 根据查询结果、分页信息构造
* @param lstResult 查询结果
* @param pageBean 分页信息Bean
*/
public Page(List lstResult, PageBean pageBean) {
this.result = lstResult;
this.pageBean = pageBean;
}
/**
* 取得查询结果
* @return 查询结果
*/
public List getResult() {
return result;
}
/**
* 设置查询结果
* @param lstResult 查询结果
*/
public void setResult(List lstResult) {
this.result = lstResult;
}
/**
* 取得分页信息Bean
* @return 分页信息Bean
*/
public PageBean getPageBean() {
return pageBean;
}
/**
* 设置分页信息Bean
* @param pageBean 分页信息Bean
*/
public void setPageBean(PageBean pageBean) {
this.pageBean = pageBean;
}
@Override
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append("Page");
sb.append("{result=").append(result);
sb.append(", pageBean=").append(pageBean);
sb.append('}');
return sb.toString();
}
}
package com.dhgate.util;
import java.util.ArrayList;
import java.util.List;
/**
* 分页查询结果集的翻页信息
* @author sunbaoming@dhgate.com
*/
public class PageBean implements java.io.Serializable {
private static final long serialVersionUID = 6843814549013761926L;
/**一共显示分页的元素:*/
private static int yuansu = 11;
/**缺省的分页条数*/
private static int DEF_PAGE_VIEW_SIZE=20;
/** 当前页 */
private int page;
/** 当前页显示记录条数 */
private int pageSize;
/** 取得查询总记录数 */
private int count;
/** 共几页 */
private int sumPage;
/** 分页显示,如:1...6789101112...15 */
private List pageDetail = new ArrayList();
/**
* (空)
*/
public PageBean() {}
/**
* 根据当前显示页与每页显示记录数设置查询信息初始对象
* @param page 当前显示页号
* @param pageSize 当前页显示记录条数
*/
public PageBean(int page, int pageSize) {
this.page = (page <= 0) ? 1 : page;
this.pageSize = (pageSize <= 0) ? DEF_PAGE_VIEW_SIZE : pageSize;
}
/**
* 取得当前显示页号
* @return 当前显示页号
*/
public int getPage() {
return (page <= 0) ? 1 : page;
}
/**
* 设置当前页
* @param page 当前页
*/
public void setPage(int page) {
this.page = page;
}
/**
* 取得当前显示页号最多显示条数
* @return 当前显示页号最多显示条数
*/
public int getPageSize() {
return (pageSize <= 0) ? DEF_PAGE_VIEW_SIZE : pageSize;
}
/**
* 设置当前页显示记录条数
* @param pageSize 当前页显示记录条数
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
//this.setNewPaging(this.count, this.pageSize);
}
/**
* 取得查询取得记录总数
* @return 取得查询取得记录总数
*/
public long getCount() {
return count;
}
/**
* 新分页设计的几个参数
* @param count
* @param pageSize
*//*
public void setNewPaging(int count,int pageSize){
if(count>0&&pageSize>0){
this.sumPage = this.count/this.pageSize+(this.count%this.pageSize==0?0:1);
int zhengsan = 0;
for(int k=1;k<=yuansu;k++){
if(k>sumPage){//已经超越最后一页
break;
}
if(sumPage<=yuansu){//假如是共有的页数小于等于应有的元素数的话
if(page==k){
pageDetail.add(0);
}else{
pageDetail.add(k);
}
}else if(k==1){//假如正数第一
if(page==k){
pageDetail.add(0);
}else{
pageDetail.add(k);
}
}else if(k==yuansu){//假如倒数第一个元素的话
if(sumPage==page){
pageDetail.add(0);
}else{
pageDetail.add(sumPage);
}
}else if(k==2){//假如正数第二
if(page-3>3){
pageDetail.add("...");
if(sumPage-(page+3)>2){//倒数第二个元素是...
zhengsan = page-3;
}else{
zhengsan = sumPage-8;
}
}else if(page==k){
pageDetail.add(0);
zhengsan = k+1;
}else{
pageDetail.add(k);
zhengsan = k+1;
}
}else if(k==(yuansu-1)){//倒数第二个元素的话
if(sumPage-(page+3)>2){
pageDetail.add("...");
}else if(page==(sumPage-1)){
pageDetail.add(0);
}else{
pageDetail.add(sumPage-1);
}
}else{
for(int l=zhengsan;l<zhengsan+1;l++){
if(page==l){
pageDetail.add(0);
}else{
pageDetail.add(l);
}
}
zhengsan ++;
}
}
}else{
this.sumPage = 0;
}
}*/
/**
* 设置查询取得记录总数
* @param count 查询取得记录总数
*/
public void setCount(int count) {
this.count = (count < 0) ? 0 : count;
if (this.page > this.getPages()) {
this.page = this.getPages();
}
//this.setNewPaging(this.count, this.pageSize);
}
/**
* 取得当前查询总页数
* @return 当前查询总页数
*/
public int getPages() {
return (count + getPageSize() - 1) / getPageSize();
}
/**
* 取得起始显示记录号
* @return 起始显示记录号
*/
public int getStartNo() {
return ((getPage() - 1) * getPageSize() + 1);
}
/**
* 取得结束显示记录号
* @return 结束显示记录号
*/
public int getEndNo() {
return Math.min(getPage() * getPageSize(), count);
}
/**
* 取得前一显示页码
* @return 前一显示页码
*/
public int getPrePageNo() {
return Math.max(getPage() - 1, 1);
}
/**
* 取得后一显示页码
* @return 后一显示页码
*/
public int getNextPageNo() {
return Math.min(getPage() + 1, getPages());
}
public int getSumPage() {
return sumPage;
}
public void setSumPage(int sumPage) {
this.sumPage = sumPage;
}
public List getPageDetail() {
return pageDetail;
}
public void setPageDetail(List pageDetail) {
this.pageDetail = pageDetail;
}
}