DataTable服务器端处理不能与Spring MVC一起使用

时间:2017-12-02 05:45:39

标签: jquery ajax jsp spring-mvc datatables

我为我的DataTables添加了一个AJAX请求。它工作正常。但是当我添加"serverSide": true时,DataTables什么都没显示。

<script>

        $(document).ready(function () {
            var tableProduct = $('#example2').DataTable({"bInfo": false
                , "bLengthChange": false
                , "bSort": false
                , "oLanguage": {"sZeroRecords": "", "sEmptyTable": ""}
                , "processing": true
                ,  serverSide: true
                , ajax : '${pageContext.request.contextPath}/restservice/ViewProduct'
            });
            $.ajax({
                type: 'GET',
                url: '${pageContext.request.contextPath}/restservice/ViewProduct',
                success: function (result) {
                    var jString = JSON.stringify(result);
                    var jdata = JSON.parse(jString);
                    for (var x = 0; x < jdata.length; x++) {
                        var td1 = jdata[x].serialNo;
                        var td2 = jdata[x].slsiUnit;
                        var td3 = jdata[x].itemDesc;
                        var td4 = jdata[x].slsNo;
                        var td5 = jdata[x].hsCode;
                        var td6 = jdata[x].hsCode;
                        var td7 = jdata[x].hsCode;
                        tableProduct.row.add([td1, td2, td3, td4, td5, td6, td7]).draw(true);
                    }
                }
            });

        });
    </script>

1 个答案:

答案 0 :(得分:0)

服务器端处理无法正常工作的最常见原因是 draw 变量(DataTables术语中称为 draw 的每一页数据)未返回为它是在请求中设置的。 DataTables使用 draw 来保持抽奖计数,因此这是一个重要的参数。

请参阅server-side usage以检查DataTables发送给服务器的参数以及它希望返回给它的JSON数据。

除了在您的代码中,您再次向相同的URL发出单独的ajax请求,然后生成似乎已关闭的表,因为DataTables会处理此问题。您只需发送data in acceptable format