做后台的都知道,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表達式調用上邊的屬性可用。
