做了不少SSI练习了 总结了套ssi比较简单使用的分页套路
首先分页大致需要4个属性 pageNo->当前页 pageSize->每页条数 pageCount->总页数 rowCount->总条数
其中后两条是需要根据数据库中的情况查询或计算的.除了上面的信息还需要dao的实现类daoImpl(用spring的SqlMapClientTemplate模板实现)其中除了setter,getter以外需要一个核心方法 queryForPage(),
先查出总条数,之后根据每页数和总条数计算总页数,下一步
用dao.queryForList(key, obj, cong, pageSize)实现 ,4个参数顾名思义,其中key需要在外部注入或者由子类给与
在action中只需要声明一个BasicPage page,以后查询列表只
需要page.queryForPage()就可以而不需要service.所以存储分页基本信息的类->BasicPage
另外需要一个Dao接口及其实现类DaoImpl,其中daoimpl实现了SqlMapClientTemplate 这个是spring给ibatis解耦提供的模板
另外每个action中都要声明page是比较麻烦的 可以做个父类 PageAction 在这里面声明page 以后需要分页的action只需要继承这个类就行
分页标签PageTag及其描述文件page.tld 在页面只需要
<p:page2 pageName="page" uri="/user!query.action"></p:page2>就可实现分页效果
pageName是action中BasicPage 的变量名 uri是action查询的方法
最后除了struts,ibatis的配置外 spring的配置中需要 配置 bean->dataSource 并且做相关的关联注入
在spring配置文件中请改成自己用的数据库类型和对应的库名表名,在user.xml(ibatis的sql文件中对应更改sql)
标签样式细节可以到源码里改 或者可以改成spring注入的 ,每页条数等都是可以外部注入
BasicPage 这个类在CS项目的分页也是可以适用的
下面是个简例↓
http://download.csdn.net/source/2592295
ps:cj如此美妙 无数英雄尽折腰