jquery datatable 结合spring mvc mybatis和spring data Pageable分页

本文介绍一下结合spring mvc和jquery datatable如何进行分页。


spring mvc 代码

@Controller
@RequestMapping("/appaccess")
public class AppAccessController {
  @Autowired
  private AppAccessService appAccessService;
  
  @RequestMapping(value = "/getJsonData", produces = "text/plain;charset=utf-8")
  @ResponseBody
  public String getJsonData(@RequestParam(required = false) String keywords,
      @RequestParam(required = false) Integer start,
      @RequestParam(required = false) Integer length) {

    Map maps = new HashMap<>();
    PageRequest pagerequset = new PageRequest((start / length), length);
    int totalCount = appAccessService.findListCount(keywords);
    List results = appAccessService.findList(keywords, pagerequset);
    return JSON.toJSONString(results);
  }
}

参数start和length:start参数表示数据的开始位置,length表示每页数据的数据量,例如点击第一页,那么start=0,length=25,点击第二页,start=25,length=25,这两个参数由jquery datatable传递到后端。


如果是基于spring data Pageable进行分页,那么必须计算pageno,也即是第几页。这个很简单,使用start/length即可得到。PageRequest是Pageable接口的实现类,我们可以构造PageRequest对象,利用该对象的api得到offset和pageSize

 PageRequest pagerequset = new PageRequest((start / length), length));

mybatis 代码


至于如何将后端json数据显示到前台,请结合我之前写的Jquery datatable jsonp 显示后台json数据这篇文章。

你可能感兴趣的:(jquery datatable 结合spring mvc mybatis和spring data Pageable分页)