1. 当前页码的表单参数 listuser.do?page=2
同时转换成一个 int 类型的页码变量
int currentPage = Integer.parseInt(
request.getParameter(“page”);// 当前页
2. 下一页 listuser.do?page=${currentPage+1}
上一页 listuser.do?page=${currentPage-1}
3. 一页显示多少数据
int pageSize = 5;//每页显示的数据数
4. 总页数 totalPage
1) 先从数据库取得总记录数
dao.UserDAO#getUserTotalCount()
int totalCount = executeQuery(“select count(*) from Users”);
2) 根据一页的数据类计算出总页数
dao.UserManager#getTotalPage(int pageSize) // 得到页面总数 int totalPageCount = ((totalCount + pageSize) - 1) / pageSize; if(totalPageCount == 0) { totalPageCount = 1; }
5. 从数据库里把第currentPage页的数据读取出来(Hibernate), DAO 层的代码
dao.UserDAO#findPagedAll(int currentPage, int pageSize)
两个参数: currentPage 当前页(从1开始的)
pageSize 取多少数据
String queryString = "from User"; Query queryObject = getSession().createQuery(queryString); queryObject.setFirstResult((currentPage - 1) * pageSize); queryObject.setMaxResults(pageSize); List result = queryObject.list();
6. 在前台显示上下页的链接,并根据总页数的上下限来避免让用户跳到第-1页或者比最大页数还大的页码哪里
1}"> [ 上一页的链接 ] <c:if test="${currentPage [ 上一页的文本 ]
7. 通过 forEach 来显示数据
${user.id} ${user.username}
8. 通过下拉菜单来跳转页面
转到
// 页面跳转函数 // 参数: 包含网址的选择框(SELECT元素) function jumpPage(select) { var newUrl = "/hibernate_page/index.jsp?page=" + select.value; //alert(newUrl); document.location = newUrl; } 1页 2页
懂得接受失败的人,就是懂得人生真谛的人,