我的思路是这样:页面提交表单,然后根据条件查询,在session中保存属于当前action的page对象
nowPage当前页; pageSize页面大小;totalPage总页数;url请求action; 和当前执行的查询hql语句(因为这个查询语句是拼出来的,拼比较麻烦,所以保存,以免下次翻页继续拼)。在自定义标签中调用session,取出page进行翻页设置。 老师说不能使用session存,还说这样代码耦合度太高。
老师思路:页面提交表单,根据条件查询,在自定义标签中调用request,取出page对象,并将page对象属性定义为form表单隐藏表单域并作翻页设置。每次翻页就是提交一次表单。
请拍砖,老师还让我改,不知道有什么好的思路吗? 请大家给个建议,或者针对我的想法进行评论也好。
------解决方案--------------------
最好不要使用session,当遇到一个页面有多个表格使用分页的情况下,
session会混乱的 我们测试过的 只是用session来保存总条数都会出问题
------解决方案--------------------
最好写个翻页器客户端控件拉....可以参考... Atitit.列表页面and条件查询的实现最佳实践(2)------翻页 分页 控件的实现java .net php - attilax的专栏 - 博客频道 - CSDN.NET.htm
关于翻页有关的几大控件搜索框控件显示表格控件翻页器数据源控件
翻页的显示格式
通常ui--首页上页下页末页还要有Goto到指定页
百度式上一页567891011121314下一页
综合的页面 首页上页56789 下页末页还要有Goto到指定页
翻页器与数据源控件的交流数据
分页翻页的流程详细
搜索框搜索按钮事件
翻页事件
Jump事件
运行在服务端还是客户端控件
数据源内部获得翻页数据运行在服务端还是客户端
翻页控件选型easyui
翻页控件的扩展点and 调用点
容器注射DIIOC绑定搜索控件and翻页控件and数据源and表格控件
数据源计算总记录的方法子能sql count
---code
参考
------解决方案--------------------
的查询hql语句 最好不要使用拼接方式,可以使用对象化map条件封装方式..
当前action的page对象,就是分页映射的内存对象拉,,要是使用服务端控件,通常保存在page.attribute 里面..要是使用客户端控件,是保存在ui控件走ok了..
session存page对象,也是可以的,不是不可以.不过要区别form,可以使用map来保存不同的formid...这个模式的最大的问题是大的用户量的性能使用使用大的内存..
------解决方案--------------------
放在request域就好了,或者是将page最为Action的属性,然后前台通过OGNL表达式取出来就行了,当然EL表达式也行
------解决方案--------------------
放session肯定不建议,放request就行了,几个参数也不建议使用session传到标签里,可以在标签上定义几个属性,传进去就行,这样重用性高,别的地方用也只要调整属性