SSM分页解决方案
一、mybatis分页插件--Mybatis-PageHelper
1.下载
https://github.com/pagehelper/Mybatis-PageHelper
2.mybatis中最方便的分页插件,支持单表和多表分页查询。
3.要使用PageHelper,只需要在类路径中包含 pagehelper-xxx.jar 和jsqlparser-0.9.5.jar文件。xxx为最新版本号,到主页查询
4.maven项目的pom.xml中设置
com.github.pagehelper
pagehelper
5.0.0
5.在mybatis的配置文件SqlMapConfig.xml中配置拦截器插件(在配置环境变量前添加)
6.在spring中配置(与spring集成时候配置,就不用配置第5步骤了)
supportMethodsArguments=true
7.代码分页
1)接口类中添加方法(对参数使用注解)
List pagedData(@Param("pageSize") int pageSize,@Param("pageNum") int pageNum);
2)mapper类中
3)Service类中:
public List pagedData(int pageSize, int pageNum) {
return deptService.pagedData(pageSize, pageNum);
}
4)控制器类中:
public String getPagedData(@RequestParam(value="pageNum",defaultValue="1") int pageNum,Model model){
int pageSize = 3;
Page page = (Page)deptService.pagedData(pageSize, pageNum);
model.addAttribute("page", page);
return "dept/getpaged";
}
5)jsp中
${ dept.deptno }
${ dept.dname }
${ dept.loc }
二、bootstrap分页插件————Bootstrap Paginator
1.下载:
https://github.com/lyonlai/bootstrap-paginator
2.Bootstrap Paginator是一个jQuery插件,简化了Bootstrap分页组件的渲染。它提供了自动更新分页状态的方法以及一些事件来通知组件中的状态更改。
3.bootstrap-paginator-master.zip中documentation中的index.html为帮助文件
4.在页面中导入css、js,如模板也中导入了一部分,可导入其他部分
5.在控制器中添加分页所需数据
@RequestMapping("/paged")
public String getPagedData(@RequestParam(value="pageNum",defaultValue="1") int pageNum,Model model){
int pageSize = 3;
Page page = (Page)deptService.pagedData(pageSize, pageNum);
model.addAttribute("page", page);//页面数据
model.addAttribute("pageNum", page.getPageNum());//当前页号
model.addAttribute("pages", page.getPages());//总共有多少页
return "dept/getpaged";
}
6.jsp中显示分页信息(同步使用分页插件的onpageclicked事件,异步使用分页插件的pageUrl属性实现)
7.ajax分页
1)在控制器类中添加得到数据方法
@RequestMapping("/paged_ajax")
public @ResponseBody List getPagedDataForAjax(@RequestParam(value="pageNum",defaultValue="1") int pageNum){
int pageSize = 3;
List list = deptService.pagedData(pageSize, pageNum);
return list;
}
2)修改jsp页,通过分页插件的onpageclicked事件,发出ajax请求,去掉原来的pageUrl属性