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数据这篇文章。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值