最近在学习JavaWeb的时候,用到了分页功能,现在进行一个记录,以备不时之需
第一步:先完成PageBean的编写
就是对当前页数,每页显示的记录数,总记录数,总页数,分页显示的信息进行封装。作为通用的分页功能的实现,这里用到了泛型
importjava.util.List;/*** 分页封装
**/
public class PageBean{private int currPage;//当前页数
private int pageSize;//每页显示记录数
private int totalCount;//总记录数
private int totalPage;//总页数
private List list;//每页显示的信息
public intgetCurrPage() {returncurrPage;
}public void setCurrPage(intcurrPage) {this.currPage =currPage;
}public intgetPageSize() {returnpageSize;
}public void setPageSize(intpageSize) {this.pageSize =pageSize;
}public intgetTotalCount() {returntotalCount;
}public void setTotalCount(inttotalCount) {this.totalCount =totalCount;
}public intgetTotalPage() {returntotalPage;
}public void setTotalPage(inttotalPage) {this.totalPage =totalPage;
}public ListgetList() {returnlist;
}public void setList(Listlist) {this.list =list;
}
}
第二步:在Action类中编写一个分页方法
Action中通过调用业务层Service类的分页方法,Employee就是具体的信息Bean,之前泛型的使用就在于此,在不同项目中使用不同的信息Bean可以完成多种类信息的分页,employeeService就是具体的业务层Service,Service中我们也有一个叫findAll的方法。这里的currPage生成其set/get方法,等用户点击了页面及具体的页数,Struts2会获得具体的页数,然后将currPage传给Service
//分页(当前页)这里等于1是为了使第一页为默认页
private int currPage = 1;public intgetCurrPage() {returncurrPage;
}public void setCurrPage(intcurrPage) {this.currPage =currPage;
}/*** 分页查询*/
publicString findAll() {
PageBean pageBean =employeeService.findAll(currPage);
ActionContext.getContext().getValueStack().push(pageBean);return "findAll";
}
第三步:编写Service中的分页方法
先生成一个PageBean对象(注意泛型),之后开始封装这个Bean。pageSize(每页显示的记录数)这里设置为3,就是每页显示3条记录,totalCount(总记录数)通过Dao中的findCount()方法来查到,totalPage(总页数)=totalCount(总记录数)/pageSize(每页大小),Math.ceil可以获得一个double的近似值(大于等于),之后我们通过Double包装类的intValue再转成int型,begin(每一页的开头的序号),list的数据也通过Dao的findPage(int,int)方法获得
public PageBean findAll(intcurrPage) {
PageBean pageBean = new PageBean<>();//封装pageBean
pageBean.setCurrPage(currPage);int pageSize = 3;
pageBean.setPageSize(pageSize);int totalCount =employeeDao.findCount();
pageBean.setTotalCount(totalCount);