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 相关文章推荐
给moz-firefox下添加IE方法和属性
Apr 10 Javascript
jqeury eval将字符串转换json的方法
Jan 20 Javascript
dojo学习第二天 ajax异步请求之绑定列表
Aug 29 Javascript
快速解决jQuery与其他库冲突的方法介绍
Jan 02 Javascript
Javascript基础教程之变量
Jan 18 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
微信小程序 POST请求(网络请求)详解及实例代码
Nov 16 Javascript
微信小程序 ecshop地址三级联动实现实例代码
Feb 28 Javascript
js学习总结之dom2级事件基础知识详解
Jul 27 Javascript
Vue 开发必须知道的36个技巧(小结)
Oct 09 Javascript
浅谈JavaScript窗体Window.ShowModalDialog使用
Jul 22 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插入排序实现代码
2013/04/04 PHP
PHP 转义使用详解
2013/07/15 PHP
php获取发送给用户的header信息的方法
2015/03/16 PHP
盘点PHP和ASP.NET的10大对比!
2015/12/24 PHP
javascript中获取下个月一号,是星期几
2012/06/01 Javascript
jQuery中校验时间格式的正则表达式小结
2013/09/22 Javascript
javascript实现一个数值加法函数
2015/06/26 Javascript
FullCalendar日历插件应用之数据展现(一)
2015/12/23 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
BootStrap下jQuery自动完成的样式调整
2016/05/30 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
vue+vue-validator 表单验证功能的实现代码
2017/11/13 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue 自定义 select内置组件
2018/04/10 Javascript
vue中的数据绑定原理的实现
2018/07/02 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
Python命令行参数解析模块getopt使用实例
2015/04/13 Python
Python使用微信接入图灵机器人过程解析
2019/11/04 Python
Python: 传递列表副本方式
2019/12/19 Python
python基于三阶贝塞尔曲线的数据平滑算法
2019/12/27 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
canvas实现手机的手势解锁的步骤详细
2020/03/16 HTML / CSS
工地安全检查制度
2014/02/04 职场文书
创先争优活动承诺书
2014/08/30 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers
Python中的xlrd模块使用整理
2021/06/15 Python
总结Java对象被序列化的两种方法
2021/06/30 Java/Android
Ajax实现异步加载数据
2021/11/17 Javascript
MySQL三种方式实现递归查询
2022/04/18 MySQL