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

$(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为null。

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。我尝试了两种方式,应该使用哪些参数serverSidebServerside,但是仍然相同。任何最新更新的工作示例参考都将有所帮助。

最佳答案

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

DataTables 1.9的早期版本在服务器端处理模式下使用了sEcho参数,有关更多信息,请参见documentation

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


较旧的DataTables(1.9-)版本使用了一组不同的参数
从服务器发送和接收。这样写的脚本
对于DataTables 1.10+将无法与DataTables一起使用
1.9-。但是,DataTables 1.10确实具有针对1.9-编写的脚本的兼容模式。此兼容性模式由使用触发
sAjaxSource参数(而不是新的ajax
参数)或通过设置$.fn.dataTable.ext.legacy.ajax = true;


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

关于jquery - 使用Java的jQuery DataTables服务器端处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30559931/

10-13 01:50