hibernate分页
1.当前页码的表单参数listuser.do?page=2
同时转换成一个int类型的页码变量
intcurrentPage=Integer.parseInt(
request.getParameter("page");//当前页
2.下一页listuser.do?page=${currentPage+1}
上一页listuser.do?page=${currentPage-1}
3.一页显示多少数据
intpageSize=5;//每页显示的数据数
4.总页数totalPage
1)先从数据库取得总记录数
dao.UserDAO#getUserTotalCount()
inttotalCount=executeQuery("selectcount(*)fromUsers");
2)根据一页的数据类计算出总页数
dao.UserManager#getTotalPage(intpageSize)
//得到页面总数
inttotalPageCount=((totalCount+pageSize)-1)/pageSize;
if(totalPageCount==0){
totalPageCount=1;
}
5.从数据库里把第currentPage页的数据读取出来(Hibernate),DAO层的代码
dao.UserDAO#findPagedAll(intcurrentPage,intpageSize)
两个参数:currentPage当前页(从1开始的)
pageSize取多少数据
StringqueryString="fromUser";
QueryqueryObject=getSession()。createQuery(queryString);
queryObject.setFirstResult((currentPage-1)*pageSize);
queryObject.setMaxResults(pageSize);
Listresult=queryObject.list();
时间:2011-09-18-
6.在前台显示上下页的链接,并根据总页数的上下限来避免让用户跳到第-1页或者比最大页数还大的页码哪里
<c:iftest="${currentPage>1}">
[上一页的链接]
</c:if>
<c:iftest="${currentPage<=1}">
[上一页的文本]
</c:if>
7.通过forEach来显示数据
<c:forEachitems="${users}"var="user">
${user.id}
${user.username}
<c:/forEach>
8.通过下拉菜单来跳转页面
转到
<script>
//页面跳转函数
//参数:包含网址的选择框(SELECT元素)
functionjumpPage(select){
varnewUrl="/hibernate_page/index.jsp?page="+select.value;
//alert(newUrl);
document.location=newUrl;
}
</script>
<!--输出HTMLSELECT元素,并选中当前页面编码-->
<selectonchange='jumpPage(this);'>
<optionvalue="1"selected>1页</option>
<optionvalue="2">2页</option>
</select>
原文地址:http://java.chinaitlab.com/Hibernate/916947.html