一、思路
二、代码
1、引入PageHelper:引入依赖
com.github.pagehelper
pagehelper
2、引入PageHelper:在mybatis的配置文件中的sqlSessionFactoryBean中配置插件
mysql
true
3、在AdminMapper中编写SQL语句
4、AdminMapper接口中声明方法
List selectAdminByKeyword(String keyword);
5、AdminService、AdminServiceImpl方法
PageInfo getPageInfo(String keyword,Integer pageNum,Integer pageSize);
@Override
public PageInfo getPageInfo(String keyword, Integer pageNum, Integer pageSize) {
// 1、调用PageHelper的静态方法开启分页功能
// 充分体现PageHelper的"非侵入式"设计:原本要做的查询不必有任何修改。不需要分页就不加这句
PageHelper.startPage(pageNum,pageSize);
// 2、执行查询
List list = adminMapper.selectAdminByKeyword(keyword);
// 3、封装到PageInfo对象中
return new PageInfo<>(list);
}
6、Controller方法
@RequestMapping("/admin/get/page.html")
public String getPageInfo(
// 使用@RequestParam注解中的defaultValue属性,在请求中没有携带参数时使用默认值
@RequestParam(value = "keyword",defaultValue = "") String keyword,
@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize,
ModelMap modelMap
){
// 调用service获取PageInfo对象
PageInfo pageInfo = adminService.getPageInfo(keyword, pageNum, pageSize);
// 将pageInfo存入到模型中
modelMap.addAttribute(CrowdConstant.ATTR_NAME_PAGE_INFO,pageInfo);
return "admin-page";
}
7、页面显示
抱歉,没有查询到你要的数据!
${myStatus.count}
${admin.loginAcct}
${admin.userName}
${admin.email}
8、分页显示:使用jQuery的Pagination插件
三、通过Json数据的方式传递、显示
1、Handler:
1⃣️映射地址是json结尾:/role/get/page/info.json
2⃣️返回的数据类型是ResultEntity
3⃣️不需要将分页数据放入到modleMap中,再跳转地址了。
@ResponseBody
@RequestMapping("/role/get/page/info.json")
public ResultEntity> getPageInfo(
@RequestParam(value = "keyword",defaultValue = "") String keyword,
@RequestParam(value = "pageNum",defaultValue = "1") Integer pageNum,
@RequestParam(value = "pageSize",defaultValue = "5") Integer pageSize
){
// 调用Service方法获取分页数据
PageInfo pageInfo = roleService.getPageInfo(keyword,pageNum,pageSize);
// try {
// pageInfo = roleService.getPageInfo(keyword,pageNum,pageSize);
// return ResultEntity.successWithData(pageInfo);
// }catch (Exception e){
// e.printStackTrace();
// return ResultEntity.failed(e.getMessage());
// }
// 封装到ResultEntity返回
return ResultEntity.successWithData(pageInfo);
}
2、前段工作
1⃣️view-controller直接配置跳转地址,不是经过上面的controller跳转了
2⃣️创建外部 JavaScript 文件并在在 role-page.jsp 引入。
3⃣️初始化数据
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)