Sam哥哥聊技术

互联网技术爱好者

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<String, Object> maps = new HashMap<>();
    PageRequest pagerequset = new PageRequest((start / length), length);
    int totalCount = appAccessService.findListCount(keywords);
    List<AppAccess> 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 代码

<select id="findList" resultType="com.vip.admin.appaccess.entity.AppAccess">
    select *
    from app_access where 1 = 1
     //省略部分代码
    <if test="pageable.offset >= 0 and pageable.pageSize > 0" >
      limit ${pageable.offset}, ${pageable.pageSize}
    </if>
</select>

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

阅读更多

扫码向博主提问

去开通我的Chat快问

linsongbin1

博客专家

熟悉互联网高并发系统架构设计
  • 擅长领域:
  • JAVA
  • 高并发系统架构设计
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/linsongbin1/article/details/48825203
个人分类: 前端
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭