发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA

我的分页~~~

2004-06-04 22:38
赞助商链接

分为三个部分:持久层分页,界面显示(标签库),分页控制.
分页控制是界面显示,持久层分页的连接点.采用AbstractPagerHelper实现:
public abstract class AbstractPagerHelper {
public PageControl newPageControl(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
..................
return pageControl;
}
//每页显示的数据集合,可以在其中调用业务层或持久层方法
public abstract Collection getPagerData(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response,
long start,
long count)
throws Exception;
//总行数,可以在其中调用业务层或持久层方法
public abstract long getRowCount(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception;
}

持久层:
抽象Hibernate的Dialect,实现分页语法的简单封装.

在Action中:
PageControl pageControl = new AbstractPagerHelper() {
...//两个抽象类的实现(从业务层或持久层获取数据),newPageControl会调用这两个方法
}.newPageControl(mapping,form,request,response);
request.setAttribute("pageControl",pageControl);

jsp界面(标签库的样式是模仿bang的:),可以扩展更多的样式):
<smile:pager name="pageControl" page="/personBaseList.do?query=mmm">
<smile:first>First Page</smile:first> 
<smile:prev>Pre Page</smile:prev> 
<smile:index/> 
<smile:next>Next page</smile:next> 
<smile:last>Last Page</smile:last> 
</smile:pager>
<logic:iterate id="ps" name="pageControl" property="data" type="com.smiletilly.job.person.entity.PersonBaseInfo">
<tr>
<td><bean:write name="ps" property="id"/></td>
<td><bean:write name="ps" property="name"/></td>
</tr>
</logic:iterate>

欢迎讨论~~~
注:公司的分页我是直接利用我分页,而不是反向关系(因为公司对信息安全过分注重,故提到这一点).

2004-06-05 09:37

不错,帮助顶一顶,和前面 http://www.jdon.com/jive/thread.jsp?forum=16&thread=12196
异曲同工。

2004-06-16 11:56

思想真的不错,综合运用了struts及标签库,这两方面我接触不太久,但给我启发很大。。。。

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com