jquery datatable后台封装数据示例代码


Posted in Javascript onAugust 07, 2014

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定义于父类,将参数数组中的所有元素加入一个HashMap 
Map<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 block 
e.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; 
}

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

Javascript 相关文章推荐
使用onbeforeunload属性后的副作用
Mar 08 Javascript
ExtJS 2.0实用简明教程 之Ext类库简介
Apr 29 Javascript
javascript分页代码(当前页码居中)
Sep 20 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
Jquery 全选反选实例代码
Nov 19 Javascript
javascript实现计时器的简单方法
Feb 21 Javascript
vue + socket.io实现一个简易聊天室示例代码
Mar 06 Javascript
JavaScript标准对象_动力节点Java学院整理
Jun 27 Javascript
Vue学习笔记之表单输入控件绑定
Sep 05 Javascript
vue form check 表单验证的实现代码
Dec 09 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
JS实现数组去重的11种方法总结
Apr 04 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 #Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 #Javascript
js和jquery设置disabled属性为true使按钮失效
Aug 07 #Javascript
javascript中为某个元素指定事件的三种方式
Aug 07 #Javascript
谷歌地图打不开的解决办法
Aug 07 #Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
Aug 07 #Javascript
jquery bind(click)传参让列表中每行绑定一个事件
Aug 06 #Javascript
You might like
德生BCL3000的电路分析和打磨
2021/03/02 无线电
php5 and xml示例
2006/11/22 PHP
laravel安装zend opcache加速器教程
2015/03/02 PHP
PHP 芝麻信用接入的注意事项
2016/12/01 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
javascript 静态对象和构造函数的使用和公私问题
2010/03/02 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
基于jquery的一行代码轻松实现拖动效果
2010/12/28 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
jQuery中delegate和on的用法与区别详细解析
2014/01/26 Javascript
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
vue.js开发环境搭建教程
2017/05/04 Javascript
vue+webpack实现异步组件加载的方法
2018/02/03 Javascript
理解Koa2中的async&amp;await的用法
2018/02/05 Javascript
node 使用 async 控制并发的方法
2018/05/07 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
vue2路由基本用法实例分析
2020/03/06 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
Python的gevent框架的入门教程
2015/04/29 Python
PyCharm代码格式调整方法
2018/05/23 Python
django Admin文档生成器使用详解
2019/07/22 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
大课间活动制度
2014/01/18 职场文书
学生党员检讨书范文
2014/12/27 职场文书
五一晚会主持词
2015/07/01 职场文书
2016北大自主招生自荐信模板
2016/01/28 职场文书
《七律·长征》教学反思
2016/02/16 职场文书