springboot内置分页技术
2024-08-29 19:25:37
1,在pom.xml中注入分页的配置
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
2,定义公共实体类,包含页码,页尺寸
import java.io.Serializable; import com.github.pagehelper.PageHelper; public abstract class AbstractPageForm<T extends AbstractPageForm<T>> implements Serializable { private static final long serialVersionUID = 1L; /**
* @Description 页码为首页
*/
protected int pageNum = 1; /**
* @Description 每页显示数量,默认为5
*/
protected int pageSize = 10; public int getPageNum() {
return pageNum;
} public void setPageNum(int pageNum) {
this.pageNum = pageNum;
} public int getPageSize() {
return pageSize;
} public void setPageSize(int pageSize) {
this.pageSize = pageSize;
} /**
* @Title enablePaging
* @Description 启用分页
* @return
*/
@SuppressWarnings("unchecked")
public final T enablePaging() {
PageHelper.startPage(pageNum, pageSize);
return (T) this;
} }
import java.util.Properties; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import com.github.pagehelper.PageHelper; @Configuration
public class PageBean{
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("offsetAsPageNum", "true");
p.setProperty("rowBoundsWithCount", "true");
p.setProperty("reasonable", "true");
pageHelper.setProperties(p);
return pageHelper;
}
}
3,定义分页查询条件的VO,要继承AbstractPageForm注意<>中要与继承类保持一致
import com.ulic.gis.util.paging.AbstractPageForm; public class RolePageVO extends AbstractPageForm<RolePageVO>{ private static final long serialVersionUID = 1L;
private String roleName; public String getRoleName() {
return roleName;
}
public void setRoleName(String roleName) {
this.roleName = roleName;
} }
4,controller层的关键分页代码
@RequestMapping(value="/findAllRole")
public ModelAndView findAllRole(HttpServletRequest request,HttpServletResponse response,@ModelAttribute RolePageVO rolePageVO){
ModelAndView mav = new ModelAndView(); log.info("rolePageVO:{}",JSONUtils.object2json(rolePageVO)); PageHelper.startPage(rolePageVO.getPageNum(), rolePageVO.getPageSize());
List<RoleVO> roleList = roleManageService.getRoleByparam(rolePageVO);
PageInfo<RoleVO> rolePageList = new PageInfo<>(roleList); mav.addObject("roleList", rolePageList);
mav.addObject("rolePageVO",rolePageVO);
mav.setViewName("/authorityManage/roleInfoList");
return mav;
}
此处需要注意,上面粉红色查询代码必须放在两行红色代码之间,且只能有一条查询语句。如果出现多条查询语句,则只给第一条查询语句分页。
5,jsp页面中通过下面的方式去除分页数据
PageInfo<RoleVO> info = (PageInfo<RoleVO>)request.getAttribute("roleList");
List<RoleVO> roleList = info.getList(); //分页数据
RolePageVO conditionVo = (RolePageVO)request.getAttribute("rolePageVO");//参数
最新文章
- linux ssh远程免登陆
- sql server 导出表结构到 word
- visio个人专注
- C# List集合Group by查询
- redis 学习笔记(3)-master/slave(主/从模式)
- 利用Spring MVC搭建REST Service
- Wb应用程序开放原理
- hdu 1045 Fire Net(最小覆盖点+构图(缩点))
- RGPJS 教程之八 创造场景
- Spring的IOC
- php 特别的函数
- NPOI 2.0 教程
- Docker三十分钟快速入门(下)
- activiti节点跳转
- MyBatis主键生成器KeyGenerator(一)
- Maven下载与环境变量配置
- BEAM188简单应用
- GIS中空间数据和非空间数据
- left join 右表数据不唯一的情况解决方法
- CentOS 安装 Gitlab
热门文章
- js同步和异步
- 解决 vue 使用 element 时报错ERROR in ./node_modules/element-ui/lib/theme-chalk/fonts/element-icons.ttf
- go爬虫之爬取豆瓣电影
- 将TensorFlow训练好的模型迁移到Android APP上(TensorFlowLite)
- Java中的集合(上):概述、Collection集合、List集合及其子类
- Hdu 6598 Harmonious Army 最小割
- js动画fireworks烟花
- idea目录因包名而未合并、逐级显示的问题
- SqlMetaData异常 dbType xx 对于此构造函数无效。
- P5025 [SNOI2017]炸弹 题解