创建轻量级的解决方案,极大地降低了应用开发的难度与 中,分别称为泛型类、泛型接口、泛型方法。
泛型是在复杂度,提高系统开发速度和维护的灵活性。
其体系 圃圈 划 编译时检查类型安全,而且所有的强制转换都是自动 厂〕结构如图3所示¨o。
和隐式的,从而提高代码的重用率。
厂〕 U 圈圈 2.2通用页面存储类 lSpring webl }Spring A0〔1 通用分页信息存储类基于泛型进行设计,定义为 public class PageInfo<T>,类的实现主要包括四部分: (1)页面处理私有成员,包括待分页显示记录总 I SpringCore l 数totalSize、总页数totalPage,默认每页显示的记录数 图3 spring体系架构图 pageSize,当前页页码currentPage、第一条记录在总记 spring由七个模块组成捧1,其中spring Core提供 录中的偏移量offset、实际显示的记录数length;spring框架的基本功能,主要组件是BeanFactory,是工 (2)页面内容存储私有成员,用于存储当前页面厂模式的实现,使用控制反转(IOC)模式将应用程序 显示具体内容,定义为private List<T>pageList:的配置和依赖性规范与实际的应用程序代码分开; (3)私有成员的getter和setter方法,针对(I)和spring Context是一个配置文件,向spring框架提供上 (2)中的私有成员,形成其getter和setter方法,用于辅万方数据 第1期 黄美林等:基于SSH框架与泛型的通用分页方法设计与实现 .69-助实现spring的依赖注入; 整合,采用struts2实现前台页面展示,spring实现业务 (4)辅助完成分页功能的静态方法,包括计算总 逻辑转换处理,hibernate实现与底层数据库的操作”1;页数、偏移量、实际显示记录数以及页码值校正。
(2)应用泛型技术,结合相关配置文件的参数化 按照上述设计,实现该类的主要代码如下: 配置,将用户请求的业务Bean类型。
注入分页处理过 public class Pagelnfo<T>I 程,同时返回所注入业务Bean的分页处理结果。
privale int pageSize;//默认分页显示的记录数 基于上述两个方面,设计通用分页方法基本过程 private int c四ntPage;//当前页号 模型如图5所示: pri哦int totalSize;//分页实现总记录数 基于该模型,具体业务Bean的分页处理过程分为 private int totalPage;//分页显示总页数 以下五个步骤: private int offset;//当前分页第一条记录在总记录 (1)用户通过页面向Web服务器发出所请求的业中的偏移量 务对象类型、查询条件和页码; private int length;//当前分页的记录数 (2)struts2接收相关参数、条件信息后,转交业务 private List<T>pageList;//存储分页记录信息的 信息处理Action,其中业务信息处理Ac在on类继承通U8t 用Action类GonericAction; ......//成员变量的getter和¥etter方法 (3)spring根据Action请求,调用Action中对应方 //辅助函数,计算要显示记录的总页数 法进行业务逻辑处理,处理过程中,如果涉及到数据库 public static int countTotalPnge(int pageSire,int all- 访问操作,则交由hibernate完成;Bow)j (4)AcIion将业务处理完毕后,将当前分页需要显 int tote〕Page=(allRow%p略esi卵==0)?(all- 示的业务对象信息存储到所继承的通用页面存储类成Bow/pageSize):(ailRow/page.Size+1); 员变量pageInfo中; return tot