jquery datatable后台封装数据

来源:互联网 发布:北京股商怎么样知乎 编辑:程序博客网 时间:2024/06/06 13:55

1.数据转换类

public class DataTableReturnObject {private int iTotalRecords;private int iTotalDisplayRecords;private String sEcho;private String[][] aaData;public DataTableReturnObject(int totalRecords, int totalDisplayRecords, String echo, String[][] d) {this.setiTotalRecords(totalRecords);this.setiTotalDisplayRecords(totalDisplayRecords);this.setsEcho(echo);this.setAaData(d);}public void setiTotalRecords(int iTotalRecords) {this.iTotalRecords = iTotalRecords;}public int getiTotalRecords() {return iTotalRecords;}public void setiTotalDisplayRecords(int iTotalDisplayRecords) {this.iTotalDisplayRecords = iTotalDisplayRecords;}public int getiTotalDisplayRecords() {return iTotalDisplayRecords;}public void setsEcho(String sEcho) {this.sEcho = sEcho;}public String getsEcho() {return sEcho;}public void setAaData(String[][] aaData) {this.aaData = aaData;}public String[][] getAaData() {return aaData;}}
2帮助类

public class BaseController {protected JSONResponse successed(Object obj) {JSONResponse ret = new JSONResponse();ret.setSuccessed(true);ret.setReturnObject(obj);return ret;}}
3.实现类

public JSONResponse searchList(HttpServletRequest request , HttpServletResponse response ,String sEcho) throws Exception {//convertToMap定义于父类,将参数数组中的所有元素加入一个HashMapMap<Object, Object> objQueryMap = new HashMap<Object, Object>();String jsondata  = request.getParameter("aoData");JSONArray jsonarray = JSONArray.fromObject(jsondata);String strDisplayStart ="";String strDisplayLength="";String[] arrayColumen = new String[new JSONUser().toArray().length];int strSortId = 0;String strSort = ""; for(int i=0;i<jsonarray.size();i++) //从传递参数里面选出待用的参数          {              JSONObject obj=(JSONObject)jsonarray.get(i);              String strName = (String)obj.get("name");            String strValue = obj.get("value").toString();            if(strName.equals("sEcho")){              sEcho=strValue;              }            if(strName.equals("iDisplayStart")) {            strDisplayStart=strValue;              }            if(strName.equals("iDisplayLength"))  {            strDisplayLength=strValue;              }            if(strName.equals("sColumns")){              arrayColumen = obj.get("value").toString().split(",");                        }        if(strName.startsWith("iSortCol_")){              strSortId = Integer.parseInt(strValue) ;//排序列数            }            if(strName.startsWith("sSortDir_")){              strSort = strValue;//排序的方向 "desc" 或者 "asc".            }                 } Map<Object, Object> params = new HashMap<Object, Object>() ;try {params = managerService.getUserList(参数);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}String count = (String)params.get("COUNT");//总数String[][] strData = (String[][])params.get("AO_DATA");//当前页显示的集合return successed(new DataTableReturnObject(Integer.parseInt(count) , Integer.parseInt(count), sEcho, strData));}
4.查询方法
public Map<Object, Object> getUserList(Map<Object, Object> queryParams)throws Exception {String iCount =  总记录数;// 将查询结果转换为一个二维数组String[][] data = {};if (lstUser != null && lstUser.size() > 0) {int record = lstUser.size();data = new String[record][];for (int i = 0; i < lstUser.size(); i++) {User objUser = (User) lstUser.get(i);JSONUser jsonUser = new JSONUser();BeanUtils.copyProperties(jsonUser, objUser);data[i] = jsonUser.toArray();}}queryParams.clear();// 情况map,重新设值使用queryParams.put("AO_DATA", data);queryParams.put("COUNT", iCount);return queryParams;}

注意存放的数组对象的属性必须与前端页面显示的列保持一样的个数



0 0