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 相关文章推荐
dojo 之基础篇(三)之向服务器发送数据
Mar 24 Javascript
基于Jquery与WebMethod投票功能实现代码
Jan 19 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
编写高效jQuery代码的4个原则和5个技巧
Apr 24 Javascript
JQuery打造省市下拉框联动效果
May 18 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
Dec 10 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
JavaScript箭头(arrow)函数详解
Jun 04 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
Jan 21 jQuery
Vue数据驱动表单渲染,轻松搞定form表单
Jul 19 Javascript
JS+CSS实现过渡特效
Jan 02 Javascript
JavaScript原始值与包装对象的详细介绍
May 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 session应用实例 登录验证
2009/03/16 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
PHP小技巧之函数重载
2014/06/02 PHP
PHP使用array_multisort对多个数组或多维数组进行排序
2014/12/16 PHP
写一段简单的PHP建立文件夹代码
2015/01/06 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
js加解密 脚本解密
2008/02/22 Javascript
Jquery判断$(&quot;#id&quot;)获取的对象是否存在的方法
2013/09/25 Javascript
JavaScript window.location对象
2014/11/14 Javascript
JS判断字符串字节数并截取长度的方法
2016/03/05 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
详解关于vue-area-linkage走过的坑
2018/06/27 Javascript
vue使用ElementUI时导航栏默认展开功能的实现
2018/07/04 Javascript
小程序实现多选框功能
2018/10/30 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
jQuery实现移动端扭蛋机抽奖
2020/11/08 jQuery
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
通过PYTHON来实现图像分割详解
2019/06/26 Python
浅谈Python 递归算法指归
2019/08/22 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
python字符串的index和find的区别详解
2020/06/20 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
美国休闲服装品牌:J.Crew Factory
2017/03/04 全球购物
Javascript如何发送一个Ajax请求
2015/01/26 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
2015年药店店长工作总结
2015/04/29 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
pytorch损失反向传播后梯度为none的问题
2021/05/12 Python
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python