Struts+Hibernate实现分页功能
学过Hibernate的程序员都知道,在Hibernate中为用户准备好了分页数据库的功能。也就是两句话:
query.setFirstResult(pageStartRow);
query.setMaxResults(pageSize);
最近开始学Hibernate就写了一个分页的功能,很实用,实现了跳转到相应的页:GO,和用户可选的页面显示数据的数量,与大家分享下,如果有不正确的地方请大家多多指出。谢谢,就不多说废话了.....
首先我们准备一个 Pager.java
然后我们需要一个工具类,用于获得一个Pger对象,在Action中使用:
PagerUtil.java
Struts中Action的代码如下:
以上的Action使用了Hibernate中的两个方法:
1.totalCount():得到总数据量;
2.selectStudentList(pager.getPageSartRow(),pager.getPageSize()); 得到请求的List
Hibernate范围中的代码如下:
最后我们来看看前台代码:
从jsp页面上可以看到,我把分页模拟成了一个组件化的用例,放在一个table中,我们可以在任何一个项目中使用它,只要能将代码复制即可,当然还要修改下请求的路径,这个就要以项目为中心了,这里的请求我大多是用的javasript,因为我们必须在没有表单的情况下获得用户的输入和选择,所以我选择了JavaScript,当然还有很多方法,大家有兴趣可以去研究。由于我在代码中注释都写得很清楚,所以我在这里只是讲下其中一个路径问题:stutent.do?dowhat=all&pagedo=next¤t=${pager.currentPage}&showcount=" + count
dowhat : 这是Action的请求,我用的是DispatchAction,这里指的是Action的请求参数;
current :当前页,从request中获得;
showcount: 用户选择的当前显示多少行数据,也就是pager的pageSize;
gocount : 用户输入的转到第几个的数值;
在贴出学习时对分页的分析图片吧:
http://b31.photo.store.qq.com/http_imgload.cgi?/rurl4_b=25b845d29607d32ca11c8a09617bf58b9889eb6d2c485aacff502cc045c39bc12e64069bea3681c5d7142e01c1ce54705b0698c740fe83c34a8bc4fef145d592f04a7df7e340263f8e4c7ae787515f321b1f26dc&a=25&b=31
还有本例的图样,大家可以先睹为快:
http://b31.photo.store.qq.com/http_imgload.cgi?/rurl4_b=25b845d29607d32ca11c8a09617bf58b1b7471265f322d130cd674d75cc0fb024fff79b1394f042be3cc3104c3c82414dfac42b6a8edc705f556ff996e15d4f4d10233e3b90edcd1c1ffd94321af0177191a7b35&a=31&b=31
就是这么多,希望对大家有所帮助!