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();
时间:2011-09-18 -
6. 在前台显示上下页的链接,并根据总页数的上下限来避免让用户跳到第-1页或者比最大页数还大的页码哪里
<c:if test="${currentPage > 1}">
[ 上一页的链接 ]
</c:if>
<c:if test="${currentPage <= 1}">
[ 上一页的文本 ]
</c:if>
7. 通过 forEach 来显示数据
<c:forEach items="${users}" var="user" >
${user.id}
${user.username}
<c:/forEach>
8. 通过下拉菜单来跳转页面
转到
<script>
// 页面跳转函数
// 参数: 包含网址的选择框(SELECT元素)
function jumpPage(select) {
var newUrl = "/hibernate_page/index.jsp?page=" + select.value;
//alert(newUrl);
document.location = newUrl;
}
</script>
<!-- 输出 HTML SELECT 元素, 并选中当前页面编码 -->
<select onchange='jumpPage(this);'>
<option value="1" selected>1页</option>
<option value="2" >2页</option>
</select>
原文地址:http://java.chinaitlab.com/Hibernate/916947.html
hibernate分页
猜你喜欢
转载自ydcworld.iteye.com/blog/1807779
今日推荐
周排行