jQuery DataTables 服务器端处理 Java

jQuery DataTables server-side processing with Java

我正在寻找如何在 Java 中通过服务器端处理实现 jQuery DataTables。我使用以下参数尝试了以下方法。下面是我的jQueryready函数代码。

$(document).ready(function() {
    //url = http://localhost:8080/jQuery-DataTable-Java-Integration/serverExample
    $('#myTableId').DataTable({
        "serverSide" : true,
        "processing" : true,
        /*"bProcessing" : true,
        "bServerSide" : true,*/
        "ajax" : {
            "url" : "serverExample",
            "type" : "POST"
        },
        "columns" : [ {
            "data" : "Phone Number"
        }, {
            "data" : "name"
        }, {
            "data" : "Email"
        } ]
    });
});

在我的 servlet doPost() 方法中,请求参数 sEcho 为空。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("In do post method of server servlet..");
        logger.info("sEcho request parameter = " + request.getParameter("sEcho"));//returning null
//other code here
}

我的 jQuery DataTables 版本是 1.10.7。应该用哪个参数,serverSide还是bServerside,两种方法我都试过了,还是一样。任何最新更新的工作示例参考资料都会有所帮助。

在服务器端处理模式下使用 DataTables 1.10 版本时,客户端会发送 draw 参数以及其他参数。 DataTables website 上显示了完整列表。

之前版本的 DataTables 1.9 在服务器端处理模式中使用了 sEcho 参数,有关详细信息,请参阅 documentation

如果您有为 DataTables 1.9 编写的服务器端脚本,则可以强制 DataTables 1.10 发送与以前版本兼容的参数。以下是手册的摘录:

Older versions of DataTables (1.9-) used a different set of parameters to send and receive from the server. As such scripts which are written for DataTables 1.10+ will not be able to function with DataTables 1.9-. However, DataTables 1.10 does have a compatibility mode for scripts written for 1.9-. This compatibility mode is triggered by use of the old sAjaxSource parameter (rather than the new ajax parameter) or by setting$.fn.dataTable.ext.legacy.ajax = true; .

您应该使用 serverSideprocessing,它们是 1.10 版的首选选项名称,尽管它接受以前版本的选项名称(bServerSidebProcessing)作为嗯。