/**
本博客由马瘦风整理并发布,创作不易,转载请注明出处:
http://blog.csdn.net/ma_shou_feng
*/
1. JavaBean概述:
JavaBean 是Java 中类的一种,意为Java语言描述的可重用组件。凡是描述一类事物、提供空参构造方法、并为其属性提供setter、getter 方法后的 Java 类都是 JavaBean,包括对class 字节码文件的抽象表述 Class 类也算。
2. PageBean的设计优化:
PageBean的使用,必须要有当前页、页大小以及总记录数,如此才能确定一个 PageBean 的所有内容。因此将构造方法强制为满参方法,或包含三个必要参数:
//页面对象最基本的三个要素 public PageBean(intcurrentPage, int pageSize, int totalRecords) { super(); this.currentPage =currentPage; this.pageSize =pageSize; this.totalRecords =totalRecords; }
注意:不提供空参构造方法,是为了防止其他成员变量的赋值方法没有来得及调用,从而导致分页显示出现问题。
减少部分 set方法,在 setDatas 设置页面信息时即调用 这些减少的 set方法,将页面的其他属性提前设置好:
//在此方法中封装其他相关数据 public void setDatas(List<T>datas) { this.datas =datas; this.setTotalPages(); this.setPreviousPage(); this.setNextPage(); }
3. 具体设计代码如下:
/** * 通用的分页Bean * @author healchow * @param <T> */ public class PageBean<T> implements java.io.Serializable{ //设置成泛型,就可以让PageBean存储任何类型的数据了 private List<T> datas; //当前页面的数据 private int firstPage = 1; //首页,默认为1 private int previousPage; //上一页 private int nextPage; //下一页 private int totalPages; //末页、总页数 private int currentPage; //当前页 private int totalRecords; //总记录条数 private int pageSize = 5; //每页显示的记录数,默认为5,后期可修改 public PageBean() { super(); } //页面对象最基本的三个要素 public PageBean(int currentPage, int pageSize, int totalRecords) { super(); this.currentPage = currentPage; this.pageSize = pageSize; this.totalRecords = totalRecords; } public List<T> getDatas() { return datas; } //在此方法中封装其他相关数据 public void setDatas(List<T> datas) { this.datas = datas; this.setTotalPages(); this.setPreviousPage(); this.setNextPage(); } public int getFirstPage() { return firstPage; } public void setFirstPage(int firstPage) { this.firstPage = firstPage; } public int getPreviousPage() { return previousPage; } public void setPreviousPage() { //当前页如果大于1,则前一页为当前页-1,否则前一页仍为1 if(this.getCurrentPage() > 1) this.previousPage = this.getCurrentPage() - 1; else { this.previousPage = 1; } } public int getNextPage() { return nextPage; } public void setNextPage() { //如果当前页不是最后一页,则当前页+1,否则返回末页 if(this.currentPage < totalPages) { this.nextPage = currentPage + 1; }else { this.nextPage = totalPages; } } public int getTotalPages() { return totalPages; } public void setTotalPages() { this.totalPages = (int) Math.ceil((double)this.getTotalRecords() / this.getPageSize()); } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public int getTotalRecords() { return totalRecords; } public void setTotalRecords(int totalRecords) { this.totalRecords = totalRecords; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } @Override public String toString() { return "PageBean-本页数据:" + datas + ", 首页:" + firstPage + ",上一页:" + previousPage + ",下一页:" + nextPage + ",共" + totalPages + "页,当前第" + currentPage + "页,共" + totalRecords + "条,每页" + pageSize + "条"; } }