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的键盘控制事件说明
Apr 15 Javascript
基于Jquery的文字自动截取(提供源代码)
Aug 09 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
Dec 23 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
Feb 12 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
Mar 16 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
Feb 24 Javascript
JavaScript学习笔记整理_setTimeout的应用
Sep 19 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 Javascript
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
深入理解JavaScript和TypeScript中的class
Apr 22 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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时间不正确的解决方法
2008/04/09 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
Yii2框架BootStrap样式的深入理解
2016/11/07 PHP
php获取数据库结果集方法(推荐)
2017/06/01 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
Javascript入门学习资料收集整理篇
2008/07/06 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
javascript中字符串的定义示例代码
2013/12/19 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
jQuery之Deferred对象详解
2014/09/04 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
微信小程序实现刷脸登录
2018/05/25 Javascript
Angular6笔记之封装http的示例代码
2018/07/27 Javascript
js实现复制粘贴的两种方法
2020/12/04 Javascript
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
举例详解Python中threading模块的几个常用方法
2015/06/18 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python获取Redis所有Key以及内容的方法
2019/02/19 Python
python列表推导和生成器表达式知识点总结
2020/01/10 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
Python内置方法和属性应用:反射和单例(推荐)
2020/06/19 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
python 对xml解析的示例
2021/02/27 Python
2015年国庆晚会主持词
2015/07/01 职场文书
2015年度优秀员工获奖感言
2015/07/31 职场文书
青年教师听课心得体会
2016/01/15 职场文书
高考升学宴主持词
2019/06/21 职场文书
如何将numpy二维数组中的np.nan值替换为指定的值
2021/05/14 Python
springBoot基于webSocket实现扫码登录
2021/06/22 Java/Android