上一篇博客(http://blog.csdn.net/u013082989/article/details/51016638)中实现了基本分页功能,这次我们在代码方面做些优化(还有之前关于BaseAction的代码抽取及优化的博客最好也看一下,要不然可能会有点问题
http://blog.csdn.net/u013082989/article/details/50990250)
一:首先先看简单的,在jsp界面,可以将显示页码信息的代码抽取出来,
单独放到一个文件中
然后在需要显示分页信息的界面include进来就行了,
页面跳转的javascript代码
二:Action层:
(1)每个Action都有pageNum和pageSize,因为每个Action都是继承BaseAction的(具体看之前的博客)
(2)所以可以放到BaseAction中,声明为protected类型即可
三:Service层:
(1)每个Service是继承DaoSupportImpl的(也是之前博客中代码的优化),我们在Action层需要一个PageBean对象,所以可以在Action层将hql语句和参数列表传递给Service处理就行了,这样以后Service层代码就不需要专门写了。
(2)IDaoSupport接口中声明一个getPageBean方法,参数多了hql语句和参数列表,hql语句中可能会有where xxx=? and yyy=?,参数列表要对应上。
(3)DaoSupportImpl实现接口中方法,需要根据hql语句和参数列表查询分页记录和记录总数(和上篇博客中一样),具体看代码注释
四:下面测试一下结果
访问成功。虽然这样可以简化代码,但是我们将hql语句写在Action中了。
下一篇博客将继续优化代码,更加简化分页。