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 相关文章推荐
IE iframe的onload方法分析小结
Jan 07 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
Sep 10 Javascript
js 在定义的时候立即执行的函数表达式(function)写法
Jan 16 Javascript
js substring从右边获取指定长度字符串(示例代码)
Dec 23 Javascript
jquery 判断滚动条到达了底部和顶端的方法
Apr 02 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
jsMind通过鼠标拖拽的方式调整节点位置
Apr 13 Javascript
JS模仿编辑器实时改变文本框宽度和高度大小的方法
Aug 17 Javascript
Three.js学习之几何形状
Aug 01 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
Apr 17 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
Jan 04 Javascript
JS XMLHttpRequest原理与使用方法深入详解
Apr 30 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
德生9700DX电路分析
2021/03/02 无线电
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
PHP调用JAVA的WebService简单实例
2014/03/11 PHP
PHP英文字母大小写转换函数小结
2014/05/03 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
javascript实现tabs选项卡切换效果(扩展版)
2013/03/19 Javascript
js编码、解码函数介绍及其使用示例
2013/09/05 Javascript
javascript字符串替换及字符串分割示例代码
2013/12/12 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
Node.js中的http请求客户端示例(request client)
2017/05/04 Javascript
详解vue项目构建与实战
2017/06/27 Javascript
JS实现图片切换效果
2018/11/17 Javascript
JavaScript中的一些实用小技巧总结
2019/04/07 Javascript
详解VScode编辑器vue环境搭建所遇问题解决方案
2019/04/26 Javascript
bat和python批量重命名文件的实现代码
2016/05/19 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Python文件操作之合并文本文件内容示例代码
2017/09/19 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
使用CSS3实现多列布局与多背景的技巧
2016/02/29 HTML / CSS
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
德国汽车零件和汽车配件网上商店:kfzteile24
2018/11/14 全球购物
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
师范生教师实习自我鉴定
2013/09/27 职场文书
大学生学习生活的自我评价
2013/11/01 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
七个Python必备的GUI库
2021/04/27 Python
Python机器学习之基础概述
2021/05/19 Python