jquery datatable后台封装数据示例代码
1.数据转换类
publicclassDataTableReturnObject{
privateintiTotalRecords;
privateintiTotalDisplayRecords;
privateStringsEcho;
privateString[][]aaData;
publicDataTableReturnObject(inttotalRecords,inttotalDisplayRecords,Stringecho,String[][]d){
this.setiTotalRecords(totalRecords);
this.setiTotalDisplayRecords(totalDisplayRecords);
this.setsEcho(echo);
this.setAaData(d);
}
publicvoidsetiTotalRecords(intiTotalRecords){
this.iTotalRecords=iTotalRecords;
}
publicintgetiTotalRecords(){
returniTotalRecords;
}
publicvoidsetiTotalDisplayRecords(intiTotalDisplayRecords){
this.iTotalDisplayRecords=iTotalDisplayRecords;
}
publicintgetiTotalDisplayRecords(){
returniTotalDisplayRecords;
}
publicvoidsetsEcho(StringsEcho){
this.sEcho=sEcho;
}
publicStringgetsEcho(){
returnsEcho;
}
publicvoidsetAaData(String[][]aaData){
this.aaData=aaData;
}
publicString[][]getAaData(){
returnaaData;
}
}
2帮助类
publicclassBaseController{
protectedJSONResponsesuccessed(Objectobj){
JSONResponseret=newJSONResponse();
ret.setSuccessed(true);
ret.setReturnObject(obj);
returnret;
}
}
3.实现类
publicJSONResponsesearchList(HttpServletRequestrequest,HttpServletResponseresponse,StringsEcho)throwsException{
//convertToMap定义于父类,将参数数组中的所有元素加入一个HashMap
Map<Object,Object>objQueryMap=newHashMap<Object,Object>();
Stringjsondata=request.getParameter("aoData");
JSONArrayjsonarray=JSONArray.fromObject(jsondata);
StringstrDisplayStart="";
StringstrDisplayLength="";
String[]arrayColumen=newString[newJSONUser().toArray().length];
intstrSortId=0;
StringstrSort="";
for(inti=0;i<jsonarray.size();i++)//从传递参数里面选出待用的参数
{
JSONObjectobj=(JSONObject)jsonarray.get(i);
StringstrName=(String)obj.get("name");
StringstrValue=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=newHashMap<Object,Object>();
try{
params=managerService.getUserList(参数);
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
Stringcount=(String)params.get("COUNT");//总数
String[][]strData=(String[][])params.get("AO_DATA");//当前页显示的集合
returnsuccessed(newDataTableReturnObject(Integer.parseInt(count),Integer.parseInt(count),sEcho,strData));
}
4.查询方法
publicMap<Object,Object>getUserList(Map<Object,Object>queryParams)
throwsException{
StringiCount=总记录数;
//将查询结果转换为一个二维数组
String[][]data={};
if(lstUser!=null&&lstUser.size()>0){
intrecord=lstUser.size();
data=newString[record][];
for(inti=0;i<lstUser.size();i++){
UserobjUser=(User)lstUser.get(i);
JSONUserjsonUser=newJSONUser();
BeanUtils.copyProperties(jsonUser,objUser);
data[i]=jsonUser.toArray();
}
}
queryParams.clear();//情况map,重新设值使用
queryParams.put("AO_DATA",data);
queryParams.put("COUNT",iCount);
returnqueryParams;
}
注意存放的数组对象的属性必须与前端页面显示的列保持一样的个数