$('#sample_1').dataTable({ "sAjaxSource": "../table/data",// "bProcessing": true, "bServerSide": true, "fnServerData": function ( sSource, aoData, fnCallback ) { console.log(111) console.log(JSON.stringify(aoData)); $.ajax( { "dataType": 'json', "type": "POST", "url": sSource, "data": aoData, "success": fnCallback } ); }, "bDeferRender": true,// 是否启用延迟加载:当你使用AJAX数据源时,可以提升速度。默认值:False// "aaData": [// /* Reduced data set */// [ "Trident", "Internet Explorer 4.0", "Win 95+", 4, "X" ],// [ "Trident", "Internet Explorer 5.0", "Win 95+", 5, "C" ],// [ "Trident", "Internet Explorer 5.5", "Win 95+", 5.5, "A" ],// [ "Trident", "Internet Explorer 6.0", "Win 98+", 6, "A" ],// [ "Trident", "Internet Explorer 7.0", "Win XP SP2+", 7, "A" ],// [ "Gecko", "Firefox 1.5", "Win 98+ / OSX.2+", 1.8, "A" ],// [ "Gecko", "Firefox 2", "Win 98+ / OSX.2+", 1.8, "A" ],// [ "Gecko", "Firefox 3", "Win 2k+ / OSX.3+", 1.9, "A" ],// [ "Webkit", "Safari 1.2", "OSX.3", 125.5, "A" ],// [ "Webkit", "Safari 1.3", "OSX.3", 312.8, "A" ],// [ "Webkit", "Safari 2.0", "OSX.4+", 419.3, "A" ],// [ "Webkit", "Safari 3.0", "OSX.4+", 522.1, "A" ]// ], "aoColumns": [ { "bSortable": false }, null, { "bSortable": false }, null, { "bSortable": false }, { "bSortable": false } ], "aLengthMenu": [ [5, 15, 20, -1], [5, 15, 20, "All"] // change per page values here ], // set the initial value "iDisplayLength": 5, "sDom": "<'row-fluid'<'span6'l><'span6'f>r>t<'row-fluid'<'span6'i><'span6'p>>", "sPaginationType": "bootstrap", "oLanguage": { "sLengthMenu": "_MENU_ records per page", "oPaginate": { "sPrevious": "Prev", "sNext": "Next" } }, "aoColumnDefs": [{ 'bSortable': false, 'aTargets': [0] } ] });
@RequestMapping("/data") @ResponseBody public PageResult data(HttpServletRequest request,@ModelAttribute PageRequest pageRequest){// PageResult result = new PageResult(); JSONArray aaData = new JSONArray(); for (int i = pageRequest.getiDisplayStart(); i < pageRequest.getiDisplayStart()+pageRequest.getiDisplayLength(); i++) { JSONArray row = new JSONArray(); row.add("a"+i); row.add("b"+i); row.add("c"+i); row.add("d"+i); row.add("e"+i); row.add("f"+i); aaData.add(row); } result.setAaData(aaData); result.setSEcho(pageRequest.getsEcho()+1); result.setITotalRecords(30); result.setITotalDisplayRecords(30); return result; }
import com.alibaba.fastjson.JSONArray;public class PageResult { private Integer sEcho;// private Integer iTotalRecords;//实际的行数 private Integer iTotalDisplayRecords;//过滤之后,实际的行数。 private String sColumns;//可选,以逗号分隔的列名,; private JSONArray aaData; public PageResult() { super(); } public Integer getSEcho() { return sEcho; } public void setSEcho(Integer sEcho) { this.sEcho = sEcho; } public Integer getITotalRecords() { return iTotalRecords; } public void setITotalRecords(Integer iTotalRecords) { this.iTotalRecords = iTotalRecords; } public Integer getITotalDisplayRecords() { return iTotalDisplayRecords; } public void setITotalDisplayRecords(Integer iTotalDisplayRecords) { this.iTotalDisplayRecords = iTotalDisplayRecords; } public String getSColumns() { return sColumns; } public void setSColumns(String sColumns) { this.sColumns = sColumns; } public JSONArray getAaData() { return aaData; } public void setAaData(JSONArray aaData) { this.aaData = aaData; } }
public class PageRequest { private int sEcho;//页数 private int iColumns;// private String sColumns; private int iDisplayStart;//开始行数 private int iDisplayLength;//结束行数 public int getsEcho() { return sEcho; } public void setsEcho(int sEcho) { this.sEcho = sEcho; } public int getiColumns() { return iColumns; } public void setiColumns(int iColumns) { this.iColumns = iColumns; } public String getsColumns() { return sColumns; } public void setsColumns(String sColumns) { this.sColumns = sColumns; } public int getiDisplayStart() { return iDisplayStart; } public void setiDisplayStart(int iDisplayStart) { this.iDisplayStart = iDisplayStart; } public int getiDisplayLength() { return iDisplayLength; } public void setiDisplayLength(int iDisplayLength) { this.iDisplayLength = iDisplayLength; } }