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 相关文章推荐
更换select下拉菜单背景样式的实现代码
Dec 20 Javascript
javaScript面向对象继承方法经典实现
Aug 20 Javascript
通过隐藏iframe实现文件下载的js方法介绍
Feb 26 Javascript
JavaScript中对象的不同创建方法
Aug 12 Javascript
RGB和YUV 多媒体编程基础详细介绍
Nov 04 Javascript
详解Vue.js搭建路由报错 router.map is not a function
Jun 27 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
Nov 16 Javascript
详解vue mixins和extends的巧妙用法
Dec 20 Javascript
利用js-cookie实现前端设置缓存数据定时失效
Jun 18 Javascript
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
Vue-cli项目部署到Nginx服务器的方法
Nov 01 Javascript
vue中el-input绑定键盘按键(按键修饰符)
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加密解密的代码
2007/07/16 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
2016/02/23 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
把textarea中字符串里含有的回车换行替换成&amp;lt;br&amp;gt;的javascript代码
2007/04/20 Javascript
基于jquery的jqDnR拖拽溢出的修改
2011/02/12 Javascript
IE6、IE7中setAttribute不支持class/for/rowspan/colspan等属性
2011/08/28 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
jQuery将表单序列化成一个Object对象的实例
2016/11/29 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
使用jQuery和ajax代替iframe的方法(详解)
2017/04/12 jQuery
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
Vue组件Draggable实现拖拽功能
2018/12/01 Javascript
微信小程序在地图选择地址并返回经纬度简单示例
2018/12/03 Javascript
浅谈在Vue.js中如何实现时间转换指令
2019/01/06 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
vue 组件销毁并重置的实现
2020/01/13 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
js+canvas实现五子棋小游戏
2020/08/02 Javascript
Python编程实现线性回归和批量梯度下降法代码实例
2018/01/04 Python
浅谈Python类中的self到底是干啥的
2019/11/11 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
python中有关时间日期格式转换问题
2019/12/25 Python
python实现简单的购物程序代码实例
2020/03/03 Python
使用K.function()调试keras操作
2020/06/17 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
html5中canvas图表实现柱状图的示例
2017/11/13 HTML / CSS
美国咖啡批发网站:Coffee.org
2017/06/29 全球购物
服装行业创业计划书范文
2014/02/05 职场文书
中学生打架检讨书
2014/02/10 职场文书
给校长的建议书200字
2014/05/16 职场文书
安全在我心中演讲稿
2014/09/01 职场文书
工作失误检讨书范文
2015/01/26 职场文书
学习党章心得体会2016
2016/01/15 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery