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 相关文章推荐
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
javascript cookies 设置、读取、删除实例代码
Apr 12 Javascript
JavaScript 以对象为索引的关联数组
May 19 Javascript
新鲜出炉的js tips提示效果
Apr 03 Javascript
JS图片自动轮换效果实现思路附截图
Apr 30 Javascript
jQuery表单美化插件jqTransform使用详解
Apr 12 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
漂亮实用的页面loading(加载)封装代码
Feb 03 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
nuxt.js中间件实现拦截权限判断的方法
Nov 21 Javascript
vue视图不更新情况详解
May 16 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 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
php 批量替换html标签的实例代码
2013/11/26 PHP
PHP实现的线索二叉树及二叉树遍历方法详解
2016/04/25 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
PHP使用POP3读取邮箱接收邮件的示例代码
2020/07/08 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
用JQuery 实现AJAX加载XML并解析的脚本
2009/07/25 Javascript
Mootools 1.2教程 输入过滤第一部分(数字)
2009/09/15 Javascript
jQuery学习笔记之jQuery选择器的使用
2010/12/22 Javascript
浅析jquery数组删除指定元素的方法:grep()
2016/05/19 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
NodeJS、NPM安装配置步骤(windows版本) 以及环境变量详解
2017/05/13 NodeJs
在Vue组件上动态添加和删除属性方法
2018/02/23 Javascript
从组件封装看Vue的作用域插槽的实现
2019/02/12 Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
2019/05/21 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
使用原生javascript开发计算器实例代码
2021/02/21 Javascript
[01:04:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第二场 1月31日
2021/03/11 DOTA
Python中AND、OR的一个使用小技巧
2015/02/18 Python
在Python的Django框架中生成CSV文件的方法
2015/07/22 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
怎么使用pipenv管理你的python项目
2018/03/12 Python
对DataFrame数据中的重复行,利用groupby累加合并的方法详解
2019/01/30 Python
Python QQBot库的QQ聊天机器人
2019/06/19 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
python+tkinter实现学生管理系统
2019/08/20 Python
Python如何使用字符打印照片
2020/01/03 Python
Python Websocket服务端通信的使用示例
2020/02/25 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
Java程序员面试题
2016/09/27 面试题
计算机专业个人求职信范例
2013/09/23 职场文书
人事科岗位职责范本
2014/03/02 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
Python使用Beautiful Soup(BS4)库解析HTML和XML
2022/06/05 Python