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 DOM节点元素的方法的总结
Aug 21 Javascript
js实现无需数据库的县级以上联动行政区域下拉控件
Aug 14 Javascript
Jquery中扩展方法extend使用技巧
Aug 24 Javascript
多功能jQuery树插件zTree实现权限列表简单实例
Jul 12 Javascript
canvas绘制多边形
Feb 24 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
详解JavaScript基础知识(JSON、Function对象、原型、引用类型)
Jan 16 Javascript
JS简单添加元素新节点的方法示例
Feb 10 Javascript
vue  directive定义全局和局部指令及指令简写
Nov 20 Javascript
layui type2 通过url给iframe子页面传值的例子
Sep 06 Javascript
vue+canvas实现移动端手写签名
May 21 Javascript
JS代码实现页面切换效果
Jan 10 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
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
PHP内核探索之解释器的执行过程
2015/12/22 PHP
jQuery 选择器理解
2010/03/16 Javascript
jquery 实现窗口的最大化不论什么情况
2013/09/03 Javascript
js读取被点击次数的简单实例(从数据库中读取)
2014/03/07 Javascript
php读取sqlite数据库入门实例代码
2014/06/25 Javascript
JQuery中使文本框获得焦点的方法实例分析
2015/02/28 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
Vue.js Ajax动态参数与列表显示实现方法
2016/10/20 Javascript
Bootstrap popover用法详解
2016/12/22 Javascript
js实现分页功能
2017/05/24 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
在vue项目中使用element-ui的Upload上传组件的示例
2018/02/08 Javascript
Linux Centos7.2下安装nodejs&amp;npm配置全局路径的教程
2018/05/15 NodeJs
angularJs select绑定的model取不到值的解决方法
2018/10/08 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
Python中用于计算对数的log()方法
2015/05/15 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
人工智能最火编程语言 Python大战Java!
2017/11/13 Python
Python判断两个list是否是父子集关系的实例
2018/05/04 Python
Python基础知识点 初识Python.md
2019/05/14 Python
分享8个非常流行的 Python 可视化工具包
2019/06/05 Python
python多线程实现TCP服务端
2019/09/03 Python
Python OrderedDict的使用案例解析
2019/10/25 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
若干个Java基础面试题
2015/05/19 面试题
办公室前台岗位职责
2014/01/04 职场文书
面试后感谢信怎么写
2014/02/01 职场文书
婚礼主持词
2014/03/13 职场文书
2014年管理工作总结
2014/11/22 职场文书
动画电影《擅长捉弄人的高木同学》6月10日上映!
2022/03/20 日漫
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技