Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Java EE 综合讨论区  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 请教:Struts+SqlMap应用中,分页该如何处理?
shengbinfoot





发贴: 5
积分: 0
于 2006-10-19 12:37 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
本人初涉Struts和SqlMap
测试一个简单的SELECT查询。
--SearhForm--
property:查询字段stype、查询关键字skey、每页记录数spage、(List)结果集results。
在控制器里使用SqlMap的内置接口com.ibatis.common.util.PaginatedList,查询出可分页的结果集。这个PaginatedList也提供了一些翻页控制和状态判断。
我尝试用一个PageForm和Page Bean来描述分页,但搞不清,如何在SearhAction发生时,同时将Page Bean里的数据填充上。继而利用PageBean里的数据和PageForm的动作,结合taglib实现分页的显示和翻页控制。
望高手请教,问题描述可能有点含糊,不明处请指出。



作者 Re:请教:Struts+SqlMap应用中,分页该如何处理? [Re:shengbinfoot]
shengbinfoot





发贴: 5
积分: 0
于 2006-10-20 09:31 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
答疑的老师们呢?怎么都没人教啊。。唉
还是自己解答吧,研究了一个下午。
本想用Page Form和Page Bean,后来证实用Page Form是个错误的想法。而应该有的,是个Page Action,用来接受翻页的动作。
建了一个PageControl类,有当前页、每页记录数和记录总数三个属性,还有一些方法,比如判断是否有前页后页、获取上一页码和下一页码等等。
有一点,在数据操作上,我用的sqlmap,结果集用的是SqlMap的内置接口com.ibatis.common.util.PaginatedList,由于这个接口本身就提供了一些常用的获取页码、判断前后页等接口,可能跟上面PageControl类中的一些方法重复了。
为了降低耦合,所以在PageAction里面,仅对SearchForm的results操作,使用PaginatedList接口里的gotoPage方法,将PageAction里得到的翻页码传递给它就可了。
关键有个是自己不太了解的,如何在PageAction里操作Searh的结果results呢?查看了网上一些文章和代码,发现是用session来解决的。
所以我这里也用同样的方法
SearchAction被触发查询出results后,将SearchFrom和PageControl两个实例都加入到session中。
PageAction触发(即获取到翻页码数)后,首先将session里的SearchFrom和PageControl读出,接着根据翻页码,将SearchForm中的results执行gotopage()方法。
最后再将SearchFrom和PageControl重新request。
结果证实是可行的,翻页速度很快,因为不需要重新select,仅仅是对session中的可滚动List进行操作。
但如果session丢失,则需要重新查询了,这是一个很大的缺点。还有就是这样做的话会不会产生太多的session,以致占用太多资源。



作者 Re:请教:Struts+SqlMap应用中,分页该如何处理? [Re:shengbinfoot]
lisliefor





发贴: 287
积分: 7
于 2006-10-21 15:47 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
About this question , I wrote a blog ! I hope you'll get somethings from it .
Come this way!



作者 Re:请教:Struts+SqlMap应用中,分页该如何处理? [Re:shengbinfoot]
lisliefor





发贴: 287
积分: 7
于 2006-10-21 15:47 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
http://lisliefor.blog.ccidnet.com/blog/ccid/do_showone/tid_95000.html


作者 谢谢 [Re:shengbinfoot]
shengbinfoot





发贴: 5
积分: 0
于 2006-10-23 16:42 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
你说的session方法和我后来实现的有相似之处,3Q3Q



flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923