一、通过面向对象的思想,可以把带有分页的页面上显示的数据封装到一个对象中.
参考: /day18/src/cn/itcast/cd/util/PageResult.java
通过servlet来创建这个对象,并且给这个对象上面的属性赋值.放在request上面,然后在页面上显示该对象的属性的值.
然后考虑如何给该对象的属性赋值
分页方法的代码:
public void pagelist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String currentPage = request.getParameter("currentPage");
if(StringUtils.isBlank(currentPage)){ //用户直接来请求这个列表, 没有传递当前页
currentPage="1";
}
Integer currentPageI = Integer.parseInt(currentPage); //有客户传递过来的...
Integer pageSize=3; //用户自定定义每页显示多少条
PageResult pageResult = new PageResult(); //PageResult是个util类,其中所有的private都需要赋值
pageResult.setCurrentPage(currentPageI);
//设置每页条数
pageResult.setPageSize(pageSize);
//设置上一页,
pageResult.setPrePage(currentPageI-1<=0?1:currentPageI-1);
Integer start = (currentPageI-1)*pageSize;
List list = employeeDAO.pageList(start,pageSize);
pageResult.setList(list); // 从数据库中查询,只能够是当前页上的数据..
int count =employeeDAO.count();
pageResult.setCount(count); //只有到数据库中查询 select count(id) from employee 执行该sql就是去查询数据库中数据的总条数
//设置总页数
pageResult.setTotalPage(pageResult.getCount()%pageSize!=0?pageResult.getCount()/pageSize+1:pageResult.getCount());
//设置下一页
pageResult.setNextPage(currentPageI+1>=pageResult.getTotalPage()?pageResult.getTotalPage():currentPageI+1);
request.setAttribute("pageResult", pageResult);
request.getRequestDispatcher("/WEB-INF/view/employee/list.jsp").forward(request, response);
}