使用例子:
@RequestMapping(value= {"list",""}) private String list(@RequestParam(value="pn",defaultValue="1")Integer pn,Order order,HttpServletRequest request,HttpServletResponse response,Model model) { // startPage(pn,3)的含义是pn 是当前的页码 其中的3是每一页显示的条数
PageHelper.startPage(pn, 3);
//这是和数据库进行交互的一个方法 List<Order> orderList = orderService.getOrdersByFactor(order);
// 创建PageInfo对象使用的是他的含有两个参数的构造器,第一个参数是查询出的结果列表List,第二个参数是连续显示的页码,比如现在处于第二页,则连续显示的页码就是:1-2-3 //如果 现在处于第六页的话,页面显示的页码为:5-6-7
PageInfo page = new PageInfo(orderList,3); model.addAttribute("page", page); //model.addAttribute("orderList", orderList); return "modules/goodMan/orderList2"; }
上述在查询完毕订单列表之后,用pageInfo封装之后,这个对象是特别的有用的,内部含有好多的属性,可以让我们通过Model对象放到Response域中传回前台,进行利用
常用的PageInfo对象的属性如下
public class PageInfo<T> implements Serializable { private static final long serialVersionUID = 1L; //当前页 private int pageNum; //每页的数量 private int pageSize; //当前页的数量 private int size; //由于startRow和endRow不常用,这里说个具体的用法 //可以在页面中"显示startRow到endRow 共size条数据" //当前页面第一个元素在数据库中的行号 private int startRow; //当前页面最后一个元素在数据库中的行号 private int endRow; //总记录数 private long total; //总页数 private int pages; //结果集 private List<T> list; //前一页 private int prePage; //下一页 private int nextPage; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false; //导航页码数 private int navigatePages; //所有导航页号 private int[] navigatepageNums; //导航条上的第一页 private int navigateFirstPage; //导航条上的最后一页 private int navigateLastPage;
PageInfo的三种构造器
通过源码可以看出来,在PageInfo这个类中,包含3个构造方法, 1.无参 public PageInfo() { } 2.一个参数 public PageInfo(List<T> list) { this(list, 8); } 3.两个参数,这里第一个参数就是传递的List<Employee> emps结果集,内部会进行自动的包装 public PageInfo(List<T> list, int navigatePages) {....}
当然在使用PageInfo插件之前需要在项目中对其依赖进行引入
1、引入到pom.xml文件中
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.0.0</version> </dependency>
1、到mybatis的配置文件中对pageHelper插件进行注册
mybatis-config.xml
<!-- 插件配置 --> <!--@zjh20200407 分页插件的注册 --> <plugins> <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> </plugins>