先来看看两个参考项目以及老师笔记是怎么写的
//mis-res的前后端接口没有分页,但对应的service mapper都有分页
//接口
Page<RestSeat> queryByPage(RestSeat restSeat, PageRequest pageRequest);
//impl
@Override
public Page<RestSeat> queryByPage(RestSeat restSeat, PageRequest pageRequest) {
long total = this.restSeatMapper.count(restSeat);
return new PageImpl<>(this.restSeatMapper.queryAllByLimit(restSeat, pageRequest), pageRequest, total);
}
//mapper
//统计总行数
long count(RestSeat restSeat);
//查询指定行数据
List<RestSeat> queryAllByLimit(RestSeat restSeat, @Param("pageable") Pageable pageable);
//ARMS
//ajax分页加载桌位
@ResponseBody
@RequestMapping("/ajaxShowDesk.do")
public ModelAndView ajaxShowDesk(DeskPager pager, ModelAndView modelAndView){
modelAndView.setViewName("/daily/desk/deskList");
pager.setPageSize(PagerTools.delDishListPagerSize);
pager.setTotalCount(deskService.getTotalCount(pager));
pager.count();
pager.setList(deskService.getDesksByPager(pager));
modelAndView.addObject("pager",pager);
return modelAndView;
}
//接口
//查询总记录数
int getTotalCount(DeskPager pager);
//分页查询
public List<Desk> getDesksByPager(DeskPager pager);
//impl
public int getTotalCount(DeskPager pager) {
return deskMapper.getTotalCount(pager);
}
public List<Desk> getDesksByPager(DeskPager pager) {
return deskMapper.getDesksByPager(pager);
}
//笔记
/**
* 分页查询
* @param pageNum 查询第?页
* @param pageSize 每页数据量大小
* 总共2条,每页显示1条:pageSize=1,pageNum可选值1/2
* @return
*/
@ApiOperation("分页查询")
@GetMapping("/page")
public AjaxResult page(@RequestParam("pageNum") Integer pageNum, @RequestParam("pageSize") Integer pageSize, Category category) {
PageHelper.startPage(pageNum, pageSize);
List<Category> list = categoryService.selectCategoryList(category);
PageInfo<List> pageInfo = new PageInfo(list);
return AjaxResult.success(pageInfo);
}
补充:
modeAndView对象的作用是:
(1)封装后端数据。
(2)设置view的url,即跳转到前端的url。
(3)将数据传递给前端。
自己造一个pager工具类和DeskPager类(对应我的table),后者继承前者,但是为什么不直接用pager类呢?遗留问题4
用到PagerTools,其实就是一个确定各种分页的数据行大小,我直接设一个确定的数。
最后还是决定直接用老师笔记上的