0

サーバーデータを取得するためにajax呼び出しを使用してJQuery Datatablesを使用しています。私は過去にこれを成功させました。今回新たに試みたのは、fnServerParams で 3 つのパラメーターを渡すことです。

私が持っているjspで:

<script>
    <%--Initializes the datatable --%>
    var userNameJs = "${userName}";
    var startDateJs = "${startDate}";
    var endDateJs = "${endDate}";

    $(document).ready(function() {

            var oTable = $('#userSearchItems')
                .dataTable(
                    {
                    "bProcessing": true,
                    "iCookieDuration": 3600,
                    "bPaginate" : true,
                    "bServerSide": true,
                    "sPaginationType": "bootstrap",
                    "aaSorting":[[0,'asc']],
                    "sAjaxSource": '/kb/report/view/searchesByUserOverDatesAjax/{userName}/{startDate}/{endDate}',
                    "fnServerParams": function (aoData) {
                        aoData.push({ "name": "userName", "value": userNameJs});
                        aoData.push({ "name": "startDate", "value": startDateJs});
                        aoData.push({ "name": "endDate", "value": endDateJs});
                    }
                    });
    });
</script>

<table style="width: 100%; table-layout: fixed;" class="zebra-striped bordered-table" id="userSearchItems">
        <thead>
            <tr>
                <th>When Entered</th>
                <th >Search Term</th>
            </tr>
        </thead>
        <tbody>
           <tr>
               <td></td>
               <td style="word-wrap: break-word"></td>
          </tr>         
       </tbody>
    </table>

Spring Controller には次のものがあります。

@RequestMapping(value="/searchesByUserOverDatesAjax/{userName}/{startDate}/{endDate}{", method=RequestMethod.GET)
public @ResponseBody String searchesByUserOverDates(@PathVariable("userName") String userName,
    @PathVariable("startDate") String startDate, @PathVariable("endDate") String endDate) {
System.out.print("HERE IN AJAX");
    JSONObject result = new JSONObject();
    JSONArray array = new JSONArray();

ポップアップ エラーが表示されます。

DataTables 警告: サーバーからの JSON データを解析できませんでした。これは、JSON フォーマット エラーが原因です。

しかし、searchsByUserOverDates() メソッドは決して実行されません。FireBug/Net では、HTTP 呼び出しから 200 OK を受信し、パラメータは正常に送信されましたが、sysout およびデバッグ ブレークポイントがヒットしないことが示されています。

メソッドをディスパッチしていないようです。ログまたは js エラー コンソールにエラーはありません。

jQuery 1.4 より前のこのエラー メッセージには、JQuery より前の問題がいくつかあったようですが、現在は 1.8 です。

ご協力いただきありがとうございます

4

1 に答える 1

0

ああ何かばかげている...余分な{javaメソッドparmの終わりに。

今では動作します。面白いことに、コンパイラまたはSpringMVCはそれをキャッチしませんでした。

乾杯

于 2013-02-21T18:40:39.067 に答える