JAVA WEB开发之基于xml配置文件的分页实现(一) 分页配置原理

分页是Web中必须使用功能,网上搜索下会有一大堆。之前一直从事.NET开发,项目中经常使用的功能自己也封装了一个dll,比如:分页、缓存、图片处理、连接池等等。

现在转到Java以后,这些经常用到的东西没有就很不顺手,公司的业务框架中也都有相应的解决方案,不过我想做一个自己的jar包,把经常使用到的东西封装起来,以避免重复的造车轮。

分页实现的原理是把分页的各个元素(前一页、后一页、第一页、最后一页)以及其他的配置(分页大小、css样式等)放在xml文件中进行描述,并创建一个配置类与之映射,在使用时,先创建配置类然后计算分页后的HTML字符串,最后显示在jsp页面中。但分页链接的样式建议由css定义,这样便于css重构,如果你感觉不需要完全可以把所有css样式定义也放在xml配置文件中。


如上图示,分页参数由这些元素组成:首页、上一页、前N页、指定范围内的页链接、后N页、下一页和尾页。这里做个案例假设,某一查询结果共有1000页数据,每页若干条记录,当前显示的是第300页,正常情况不可能把1-1000的所有链接都显示出来,比较理想的情况是只显示第300页之前的5页链接,和之后的5页链接,大概是这样的:

295 296 297 298 299 300 301 302 303 304 305

所以,这里就需要在配置文件里定义,显示链接时当前页之前显示几个链接,当前页之后显示几个链接。另外,由于当前只显示了11页,如果我想往前或向后一次性多翻几页呢,也就是向前或向后翻“之前显示链接数”+“之后显示的链接数”,上图中的“...”就是这个意思。

按照上面的分析,我把链接的各个元素当成一个节点来处理,在分页的处理类中就是一个class实例,但中间绿色的页面链接是一个节点,只是这个节点比较特殊,因为它还包括子链接。

先看下分页功能的UML类图(由MyEclipse自动生成):


上图中从下往上看,PagingItem是一个链接配置,如:首页、上一页、下一页、第2页、第3页等,后面的PagingItemType代表该节点的类型,是首页,还是第一页等。

PagingEveryone表示中间每页的链接,也就是第一张图中的 1 2 3 4,PagingButtons则表示其他的链接元素,如:首页、第一页、前N页、后N页、后一页、尾页。

由于所有的配置全放在配置文件中,那就需要在程序启动时,把配置文件中的所有项读取到内存,由一个实体类映射,这个类就是PagingConfig,考虑以后的扩展和实体类的创建,加了一个工厂类PagingConfigFactory,这样配置类的实现全部由工厂类创建。

现在配置实体类有了,还缺少的就是由配置类和分页参数(页大小、当前页、分页的URL)如何获取分页后的HTML了,这里的PagingTemplate就是这个功能。


好了,下一节开始逐个解说每个类的代码,请关注!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值