サーバーデータを取得するために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 です。
ご協力いただきありがとうございます