这是一个基于prototype.js的ajax分页,运用了spring框架,自定义分页标签,每次进入列表页面时,把列表存入session,分页只对session存储的列表进行分页,不需要再去查询数据库,性能会高些
首先在web.xml中配置spring监听和servlet
web.xml内容如下:
还需要在WEB-INF下建个root-dispatcher-servlet.xml的文件(没有这个文件会报错,为什么少了这个会出错就不知道了)
root-dispatcher-servlet.xml内容如下:
下面是spring的配置文件,文件名是application-context.xml(为了方便spring的配置都写这个文件里了),启动tomcat 的时候加载
application-context.xml 内容如下
下面开始写分页标签,文件名为TagTest,要继承TagSupport类
TagTest.java 内容如下
写好java标签后,在WEB-INF下建立个tld类型的文件配置标签,我建的标签配置文件叫tagLib
tagLib.tld 内容如下:
现在开始写用于显示列表的两个controller
TestController.java用于首次进入列表页面(test.jsp),分页时调用PaginationController.java,返回一个简单页面(test_1.jsp),并局部刷新test.jsp页面
TestController.java 内容如下
其中pageSize属性在spring配置文件中注入,其值应该与页面标签代码中的pageSize相同,否则分页会不正确
PaginationController.java内容如下
由于考虑到共用性,该controller中的List没有指明具体的类型。
下面建立个简单的JavaBean,用于测试
接口类Person.java
实现类PersonImpl.java
Person.java 内容如下:
PersonImpl.java 内容如下:
下面是页面代码
test.jsp
url:是Ajax要提交的controller映射 ''/ajaxPagination/test/paginationController.do"中,ajaxPagination为项目名称
location:返回页面要刷新的区域
list:用于分页的List
pageSize:每页显示的条数,该数值应与TestController.java中的pageSize数值相同
注意:在test.jap页面中不要忘记把prototype.js文件放进去
test_1.jsp