邯城往事

>>> 展颜笑夙愿,一笑泯恩仇 <<<

目录
查询列表接口实现无痕分页
/  

查询列表接口实现无痕分页

无痕分页指的是:在接口层看不到参数来接收pageSize或pageNum这些分页参数

实现原理:使用RequestContextHolder配合PageHelper插件

  1. 新建一个类获取请求中的pageSize参数
@Slf4j
public class PageFactory {

    public void defaultPage() {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes())
                .getRequest();

        String limit = request.getParameter("limit");
        String rows = request.getParameter("rows");
        String page = request.getParameter("page");
        String offset = request.getParameter("offset");
        log.info(limit);
        log.info(rows);
        log.info(page);
        log.info(offset);
    }
}
  1. 在controller调用PageFactory类,获取请求中的相关参数,然后赋值给PageHelper插件开启分页
@RequestMapping(value = "/list", name = "查询指标", method = RequestMethod.GET)
    public BaseResult queryIndicators(IndicatorsListQueryVo listQueryVo) {
        PageFactory pageFactory = new PageFactory();
        pageFactory.defaultPage();
        PageHelper.startPage()
        return ResultUtil.ok(iIndicatorsService.queryIndicators(listQueryVo));
    }
  1. 这样就实现了不在controller显式定义page参数也可以开启分页的效果了,不过前段始终还是要传page参数的,这是肯定的,比如可以用postman这样传过来参数
    image.png
评论
取消