做后台的都知道,pageHelper分页插件可以很容易地实现后台分页技术,但是几乎都是应用于maven的项目,下面我来说一下应用于web项目的实现。
第一步:导入pageHelper的jar包
pagehelper-3.4.2-fix.jar和pagehelper.jar
第二步:在mybatis的配置文件里配置插件
1 <plugins> 2 <plugin interceptor="com.github.pagehelper.PageHelper"> 3 <property name="dialect" value="mysql"/> 4 </plugin> 5 </plugins>
第三步:service实现层
public List<RentTable> selectAllRentFile(RentTable rentTable,int page) { PageHelper.startPage(page, 5); return rentTableMapper.selectAllRentFile(rentTable); }
并不需要在配置文件中修改sql语句,只需要在service层调用pageHelper.startPage方法即可,page是从jsp传过来的操作的页码,“”5”代表每页显示的数量,
然后这个pageHelper就会自动地在sql语句分页,此时你返回的就是带着分页的结果。
第四步:controller层
@RequestMapping("/findAllRent") public ModelAndView findAllRentFile(RentTable rentTable,Integer page){ ModelAndView mv = new ModelAndView(); List<RentTable> rentList = rentCarService.selectAllRentFile(rentTable, page); PageInfo<RentTable> rentLists = new PageInfo<>(rentList); mv.addObject("rentLists", rentLists); mv.addObject("rentTable", rentTable); mv.setViewName("/html/lendFileList.jsp"); return mv; }
controller层调用了service层,将返回值封装到PageInfo的对象里,就可以调用PageInfo的方法和属性在jsp页面进行展示了。下面是PageInfo的所有属性注释。
//当前页 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 firstPage; //前一页 private int prePage; //下一页 private int nextPage; //最后一页 private int lastPage; //是否为第一页 private boolean isFirstPage = false; //是否为最后一页 private boolean isLastPage = false; //是否有前一页 private boolean hasPreviousPage = false; //是否有下一页 private boolean hasNextPage = false; //导航页码数 private int navigatePages; //所有导航页号 private int[] navigatepageNums;
第五步:jsp页面展示省略。直接使用el表达式调用上边的属性可用。
扫描二维码关注公众号,回复:
1029255 查看本文章