easyui 分页 + mybatis 分页插件 PageHelper 完成分页显示功能(SpringMVC + mybatis 框架)

来源:互联网 发布:英文翻译软件哪个好 编辑:程序博客网 时间:2024/06/05 05:51

1、使用 easyUI datagrid 完成前台分页展示

  <table   id="dg" title="产品管理" style="width:700px;height:550px">        <thead>            <tr>               <th data-options="field:'id',hidden:true">id</th>                  <th data-options="field:'chanPinBianMa'">编码</th>                  <th data-options="field:'chanPinMingCheng'">名称</th>                  <th data-options="field:'danWeiMingChen',align:'center'">单位</th>                 <th data-options="field:'chanPinYouXiao',align:'center',formatter:rovformater">状态</th>                               <th data-options="field:'shangYi',align:'center',formatter:syformater">上移</th>                <th data-options="field:'xiaYi',align:'center',formatter:xyformater">下移</th>                <th data-options="field:'chanPinPaiXu',align:'center'">序号</th>            </tr>        </thead>    </table> 

使用 js将 table 转换为datagrid ,并增加分页功能

$(function(){            var dg = $('#dg').datagrid({                url: '../hou_tai/getAllChanPin.do',//后台返回数据的请求url                pagination: true,//是否使用分页功能                singleSelect:true//每次只能选中1行                           });                                    var p = $('#dg').datagrid('getPager'); //获取page对象    $(p).pagination({           pageSize: 10,//每页显示的记录条数,默认为10           pageList: [10,20,30],//可以设置每页记录条数的列表           beforePageText: '第',//页数文本框前显示的文字           afterPageText: '页    共 {pages} 页',  //pages为默认的参数吗,代表总页数          displayMsg: '当前显示 {from} - {to} 条记录   共 {total} 条记录'// from,to , total均为默认参数名,from, to 代表现在是总记录中的第几条到第几条,tatal代表总记录数             });                               });



2、后台返回数据,数据格式必须为json格式,

controller中的代码

@RequestMapping(value = "hou_tai/getAllChanPin.do", produces = "application/json;charset=utf-8")@ResponseBodypublic String getAllChanPin(HttpServletRequest request) {logger.info("进入获取所有产品操作");Map<String, String> map = new HashMap<String, String>();String dang_qian_ye_ma = request.getParameter("page");//page 为easyui分页插件默认传到后台的参数,代表当前的页码,起始页为1String mei_ye_ji_lu_shu = request.getParameter("rows");//rows为为easyui分页插件默认传到后台的参数,代表当前设置的每页显示的记录条数map.put("dang_qian_ye_ma", dang_qian_ye_ma);map.put("mei_ye_ji_lu_shu", mei_ye_ji_lu_shu);List<ChanPin> list = chanpinService.getAllChanPin(map);//调用service方法,获取产品记录         PageInfo pageInfo = new PageInfo(list);        long total = pageInfo.getTotal(); //获取总记录数   Map<String, Object> jsonMap = new HashMap<String, Object>();//定义map                        jsonMap.put("total", total);//total 存放总记录数                 jsonMap.put("rows", list);//rows存放每页记录 ,这里的两个参数名是固定的,必须为 total和 rows  Gson gson = new Gson();String json = gson.toJson(jsonMap);logger.info("获取所有产品操作结束");return json;}

Service方法

/** 获取产品操作 */public List<ChanPin> getAllChanPin(Map<String,String> map) {try{PageHelper.startPage(Integer.parseInt(map.get("dang_qian_ye_ma")),Integer.parseInt( map.get("mei_ye_ji_lu_shu")));//这里加上这样一句,则下面的数据库查询自动将查询的结果限制在 页码和记录条数的范围内,是自动和下面的查询匹配的。虽然返回的list具体数据限制了,但是PageHelper还是可以通过这个list对象获取记录的总条数,在controller的方法里就是通过 list对象获取到总的数据长度List<ChanPin> test=chanpinMapper.getAllChanPin(map);return test;}catch(DataAccessException e){e.printStackTrace();logger.error( "获取所有产品失败:" + e.getMessage());return null;}}


原创粉丝点击