使用Ajax通过servlet加载JQuery Datatables

时间:2013-07-09 12:47:08

标签: java jquery ajax servlets datatables

我在这里找了类似的帖子,但我找不到符合我要求的帖子。我正在尝试显示 jquery数据表。在UI上,我得到日期参数并对servlet进行ajax调用。 servlet将处理并返回json数据。一旦我得到数据,我想在数据表中显示结果。但我的代码不起作用。我是Datatables的新手。这是我的代码:

function fetchLogs(){
$.ajax({
    type: "POST",
    url: "LogsServlet",
    data: 'FromDate='+from+'&'+'ToDate='+to,
    dataType: 'json',
    success: function(data){
        /*$('#logs').dataTable({
            "aaData": data,
            "aoColumns": [{ "mDataProp": "Executed_AT" }, { "mDataProp": "User_Name"}]
        });*/
        $('#logs').dataTable( {
            "bProcessing": true,
            "sAjaxSource": data
        } );

    }

});

}

servlet返回的json数据:

[{"user_id":"rams.orvz@xyz.com","executed_at":"Jul 8, 2013 7:22:59 PM"}]

1 个答案:

答案 0 :(得分:1)

得到了解决方案。这是解决它的代码:

 function fetchLogs(){
$.ajax({
    type: "POST",
    url: "LogsServlet",
    data: 'FromDate='+from+'&'+'ToDate='+to,
    dataType: 'json',
    success: AjaxFetchDataSucceeded,
    error: AjaxFetchDataFailed

});

}

function AjaxFetchDataSucceeded(result) {
    if (result != "[]") {
        //var dataTab = $.parseJSON(result);
        $('#logs').dataTable({
            "bProcessing": true,
            "aaData": result,
            //important  -- headers of the json
            "aoColumns": [{ "mDataProp": "user_id" }, { "mDataProp": "executed_at" }],
            "sPaginationType": "full_numbers",
            "aaSorting": [[0, "asc"]],
            "bJQueryUI": true

        });
    }
}

function AjaxFetchDataFailed(result) {
    alert(result.status + ' ' + result.statusText);
}

然而,显示的数据表在外观方面完全不合适。