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

相关推荐