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 相关文章推荐
HTML颜色选择器实现代码
Nov 23 Javascript
解析jquery获取父窗口的元素
Jun 26 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
java与javascript之间json格式数据互转介绍
Oct 29 Javascript
javascript删除字符串最后一个字符
Jan 14 Javascript
js中哈希表的几种用法总结
Jan 28 Javascript
如何编写高质量JS代码
Dec 28 Javascript
JavaScript实现俄罗斯方块游戏过程分析及源码分享
Mar 23 Javascript
js学习笔记之事件处理模型
Oct 31 Javascript
使用BootStrap实现悬浮窗口的效果
Dec 13 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
Dec 20 Javascript
JavaScript进阶(四)原型与原型链用法实例分析
May 09 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
ext 列表页面关于多行查询的办法
2010/03/25 Javascript
jQuery 源码分析笔记(4) Ready函数
2011/06/02 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
解决webpack -p压缩打包react报语法错误的方法
2017/07/03 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
最全正则表达式总结:验证QQ号、手机号、Email、中文、邮编、身份证、IP地址等
2017/08/16 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
Vue.js实现可排序的表格组件功能示例
2019/02/19 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
详解vue 组件注册
2020/11/20 Vue.js
[01:18:31]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第一场 1月10日
2021/03/11 DOTA
python生成验证码图片代码分享
2016/01/28 Python
13个最常用的Python深度学习库介绍
2017/10/28 Python
简单实现python聊天程序
2018/04/01 Python
python根据list重命名文件夹里的所有文件实例
2018/10/25 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
python实现翻译word表格小程序
2020/02/27 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
化工专业应届生求职信
2013/11/08 职场文书
《社戏》教学反思
2014/04/15 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
机动车登记业务委托书
2014/10/08 职场文书
二手车交易协议书标准版
2014/11/16 职场文书
2015年社区民政工作总结
2015/04/21 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
Python实现聚类K-means算法详解
2022/07/15 Python