ssm结合easyui做分页查询

本文仅以记录开发时所使用的ssm结合easyui方法实现分页效果,亲测成功。因本人才疏学浅,尚存在不少不足之处,如对你产生误导,还望见谅。

Controller层:

       /**
* 获得某某名下所有用户
* 返回json格式数据
* @param request
* @param response
* @throws Exception
*/
  @RequestMapping(value = "listUserWithPageForJson")
  public void list(@RequestParam(value="pageNumber",required=false) String pageNumber,@RequestParam(value="pageSize",required=false) String pageSize,Patient patient,HttpServletRequest req,HttpServletResponse resp) throws Exception{
        PageModel pageBean=new PageModel(Integer.parseInt(pageNumber),Integer.parseInt(pageSize));
        Map<String,Object> map=new HashMap<String,Object>();
        String account=req.getParameter("account");
        Doctor doctor=doctorService.findByName(account);
        int docId=doctor.getDocId();
        map.put("doctorId", docId);
        map.put("start", pageBean.getStart());
        map.put("size", pageBean.getPageSize());
        List<Patient> userList=patientService.listUserWithPage(map);
        int total=patientService.getTotal(map);
        JSONObject result=new JSONObject();
        JSONArray jsonArray=JSONArray.fromObject(userList);
        result.put("rows", jsonArray);
        result.put("total", total);
        ResponseUtil.write(resp, result);
        
    }

注意:pageNumber和pageSize是前端页面传递过来的值,分别表示当前页码和每页显示的记录数。

分页查询的核心是后台向前端页面传递json格式的total和rows

serviceImpl层:

      //查询指定条件下相应页面的数据

@Override
public  List<Patient> listUserWithPage(Map<String, Object> map) throws Exception {
return patientMapper.listUserWithPage(map);

}

     //计算指定条件下的记录总数 

     @Override

public int getTotal(Map<String, Object> map) throws Exception {
int n=patientMapper.getTotal(map);
return n;
}

service和mapper层是serviceImpl层,在此不再单独列出,

mapper.xml里面的sql语句:

    《!--查询指定页面的数据--》
<select id="listUserWithPage" parameterType="Map" resultMap="PatientResultMap">
        select b.account,b.name,b.sex,b.birthday,b.identityNo,b.mobile_phone,b.memberStatus,a.doctorName FROM pc_doctor a LEFT OUTER JOIN pc_patient b on a.doc_id=b.doctor_id 
            <where>
                <if test="doctorId != null and doctorId!= '0'">
                     doctor_id =#{doctorId}
                </if>
              
         </where>
                 <if test="start!=null and size!=null">
                   limit #{start},#{size}
                 </if> 
  </select>
       《!--计算总数--》
        <select id="getTotal" parameterType="Map" resultType="Integer">
        select count(*) from pc_patient
        <where>
            <if test="doctorId != null and doctorId!= '0'">
                     doctor_id =#{doctorId}
                </if>
        </where>
    </select>

依赖的工具类:

//分页的实体类:

public class PageModel {

private int page; // 第几页
    private int pageSize; // 每页记录数
    private int start;  // 起始页
    
    public PageModel(int page, int pageSize) {
        super();
        this.page = page;
        this.pageSize = pageSize;
    }
    
    public int getPage() {
        return page;
    }
    public void setPage(int page) {
        this.page = page;
    }
    
    public int getPageSize() {
        return pageSize;
    }


    public void setPageSize(int pageSize) {
        this.pageSize = pageSize;
    }


    public int getStart() {
        return (page-1)*pageSize;
    }
}

//返回json数据的工具类:

import java.io.PrintWriter;


import javax.servlet.http.HttpServletResponse;


public class ResponseUtil {
  
  public static void write(HttpServletResponse response,Object object)throws Exception{
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        out.println(object);
        out.flush();
        out.close();
    }
}
 

前端页面:
 
import java.io.PrintWriter; import javax.servlet.http.HttpServletResponse; public class ResponseUtil { public static void write(HttpServletResponse response,Object object)throws Exception{ response.setContentType("text/html;charset=utf-8"); PrintWriter out=response.getWriter(); out.println(object); out.flush(); out.close(); } }


<script type="text/javascript">
var userGrid;
$(function(){

 

import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;


public class ResponseUtil {

    public static void write(HttpServletResponse response,Object object)throws Exception{
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        out.println(object);
        out.flush();
        out.close();
    }
}

 

 

userGrid = $("#custs").datagrid({

title: "用户列表",
width: "auto",
height: "auto",
idField: "patId",
rownumbers: true,
pagination: true,
pageList: [10, 20, 50, 100],
singleSelect: true,
nowrap: true,
striped: true,
fitColumns: true,
loadMsg: "数据加载中,请稍候...",
toolbar: "#toolbar",
url: "/sz/doctor/listUserWithPageForJson?account=${account}",
    queryParams:{pageNumber:1,pageSize:10},//查询参数
frozenColumns: [[{
field: "ck",
checkbox: true
}]],
columns: [[{
field: "name",
title: "姓名",
width: 80,
align: "center"
}, {
field: "identityNo",
title: "身份证号码",
width: 140,
align: "center"
}, {
field: "sex",
title: "性别",
width: 60,
align: "center",
formatter:function(value){
if(value == 1){
return "男";
}else if(value == 2){
return "女";
}
return "";

}, {
field: "mobilePhone",
title: "手机号",
width: 100,
align: "center"
}, {
field: "memberStatus",
title: "是否签约",
width: 80,
align: "center",
formatter: function(val){
if(val){
return "是";
}else{
return "否";
}
}
}, {
field: "doctorName",
title: "签约医生",
width: 80,
align: "center"
}]],
//如果后端返回的json的格式直接是data={total:xx,rows:{xx}},不需要设置loadFilter了,
            //如果有多层封装,比如data.jsonMap = {total:xx,rows:{xx}},则需要在loadFilter处理一下。
            /*
            loadFilter: function(data){
                if(data.jsonMap) {
                    return data.jsonMap;
                }
            }*/
});

            onSelectPage: function (pageNumber, pageSize) {//切换页面时触发事件
                find(pageNumber, pageSize);
            }
        });
});

    function find(pageNumber, pageSize)
    {
            $("#custs").datagrid('getPager').pagination({ pageNumber : pageNumber,pageSize : pageSize});//重置
            $("#custs").datagrid("loading"); //加屏蔽
            $.ajax({
                type : "POST",
                dataType : "json",
                data : {
                    pageNumber : pageNumber,
                    pageSize : pageSize
                },
                url : "/krksz/doctor/listUserWithPageForJson?account=${account}",
                success : function(data) {
                    $("#custs").datagrid('loadData',data);
                    $("#custs").datagrid("loaded"); //移除屏蔽
                },
                error : function(err) {
                    $.messager.alert('操作提示', '获取信息失败...请联系管理员!', 'error');
                    $("#custs").datagrid("loaded"); //移除屏蔽
                }
            });


    }

 

 

 


在开发当中,借鉴了http://www.cnblogs.com/zjITgrow/p/6077070.html,在此表示感激。

 

 

import java.io.PrintWriter;

import javax.servlet.http.HttpServletResponse;


public class ResponseUtil {

    public static void write(HttpServletResponse response,Object object)throws Exception{
        response.setContentType("text/html;charset=utf-8");
        PrintWriter out=response.getWriter();
        out.println(object);
        out.flush();
        out.close();
    }
}
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值