前言
前几天自己写了一个分页功能,代码逻辑写的很乱
今天发现jqGrid这个工具是真好用,故记录下来方便以后使用首先是PageHelper后台分页工具PageHelper的原理是基于拦截器实现的具体流程
首先引入PageHelper的jar包
com.github.pagehelper pagehelper 5.1.8
分页插件的配置方式
配置的方式有两种,一种是在Mybatis配置的配置文件,一种是在Spring的配置文件
两种选择一种配置即可1.在Mybatis.xml配置 直接上代码
1 2 56 7 8 10 119 12 13 1814 15 1716
2. 在 Spring 配置文件中配置拦截器插件
使用 spring 的属性配置方式,可以使用 plugins 属性像下面这样配置:
params=value1
分页插件参数
分页插件参数可以去官网查看
一般使用像我这么配就可以了jqGrid的配置步骤
下载地址:使用 JqGrid 时,必需要有的文件如下:
ui.jqgrid-bootstrap.css
ui.jqgrid-bootstrap-ui.cssjquery.jqGrid.js
grid.locale-cn.js这里注意导入的顺序!需要先导入Jquery和bootstrap
前端的代码
colModel里的数据要和你后台javaBean的属性是一致的,不然获取不到值
后端代码
dao层
package gentleman.dao;import gentleman.bean.Lend_list;import java.util.List;public interface Lend_listMapper { ListselectLend();}
Mapper层
1 2 34 5 11 12 176 7 8 9 10 18 sernum, book_id, reader_id, lend_dates, back_date, Status19 20
service层
package gentleman.service;import gentleman.bean.Lend_list;import java.util.List;public interface LendListService { ListselectLend ();}
serviceImpl
package gentleman.service;import gentleman.bean.Lend_list;import gentleman.dao.Lend_listMapper;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.List;@Servicepublic class LendListServiceImpl implements LendListService{ @Autowired private Lend_listMapper ll; @Override public ListselectLend() { return ll.selectLend(); }}
Controller层
package gentleman.Controller;import com.alibaba.fastjson.JSON;import com.github.pagehelper.PageHelper;import com.github.pagehelper.PageInfo;import gentleman.bean.Lend_list;import gentleman.service.LendListService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.ResponseBody;import java.util.HashMap;import java.util.List;import java.util.Map;@Controllerpublic class LendListController { @Autowired private LendListService ls; @RequestMapping("/lend") @ResponseBody public String LendSelect(@RequestParam Mapparams){ int page = Integer.parseInt(params.get("page").toString()); int limit = Integer.parseInt(params.get("limit").toString()); PageHelper.startPage(page,limit); List lend_lists = ls.selectLend(); PageInfo rd = new PageInfo<>(lend_lists); int r = (int)rd.getTotal(); HashMap map = new HashMap<>(); map.put("list",lend_lists); map.put("totalCount",r); map.put("currPage",page); int sum = (int) Math.floor(r/limit)+1; map.put("totalPage",sum); return JSON.toJSONString(map); }}
总结AND页面最终效果展示
这里的话,params传过来的值就是之前html里写的page和limit,分别获取转换成int类型
调用startPage()方法将页数和每页的数据条数传过去再调用service方法获取List,通过PageInfo把list传过去,里面的getTotal方法能够获取数据总数根据这个总数就能算出总共有多少页这样的话,再把数据传到前台,就完成了一个很简单的分页