`
lifeiniao526
  • 浏览: 36688 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

浅谈Struts分页中的Hibernate如何实现

阅读更多

在进行web应用开发的时候经常要对Struts分页处理,经常看到一些人在问Struts分页处理的问题,现在我把自己的处理方法写在这儿,希望能对需要进行Struts分页处理的朋友有所帮助。

一、在Struts分页有两种结构:

1. 在Action中通过DAO查询出所有的记录,然后加到session或request对象中,传到客户端,由JSP进行分页。

这种方法对于在数据量少的时候很方便,也不影响速度。

2.在Action中每次通过DAO只查询出一页的记录,再传给JSP页面。

这种结构对于数据量大的程序很好,但对于数据量小的情况,会增加对服务器的请求,加大服务器的负载。

二、Hibernate查询

由于在Hibernate中直接提供了对数据库定点定量的查询方法,所以我采用的是第2种方法。

如:

从第1万条开始取出100条记录

三、具体实现

1.Pager类

Pager类用于计算首页、前一页、下一页、尾页的在数据库中的起始行,当前的页码。

2.PagerHelp类

PageHelper这个类,我不用说应该也知道用来干嘛了

3.DAO类

DAO类我就贴这些分页需要的代码了。

“from VehicleProperty vp”也可以用一个参数传进来,有兴趣的自己改一下吧

4.Action

下面是在Action中用到的代码:/

查询语句select count(*) from VehicleProperty 也可以换成你需要的任意的条件(select count(*) from VehicleProperty where ..)

5.JSP页面使用

下面就是在JSP中的应用了:

="/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first
" paramName="PAGER" paramProperty="currentPage" paramId="currentPage">首页

解释一下这一行:"/bussiness/clInfo/queryWithPage.do?method=queryWithPage&pageMethod=first

method=queryWithPage 
是由于我的Action继承的是DispatchAction,需要一个method参数

pageMethod=first 是用来在PageHelper类中判断执行哪个操作

四、Struts分页总结

我做的这个也只是一个借鉴,还有很多没有实现的,比如还可以加一下 go 直接到第n页的功能。

其实最关键的是把当前页号和要执行的是功能(上一页,下一页)的参数从页面传进来,在Action中就可以根据这两个参数去取下一个页面上要显示的记录集了

转自http://java.chinaitlab.com/Struts/786180.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics