Spring MVC 4.0.6、Dandelion Datatables 1.1.0 と Dandelion Datatables Jsp 1.1.0 を使用するプロジェクトでは、2 つの jsps があります。
JSP1 (簡略化)
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables" %>
<form:form id="contractForm" class="form-horizontal" action="create"
method="POST" modelAttribute="contractForm" novalidate="novalidate">
<label for="legalIdentifier">
<span>*</span> <fmt:message key="customers.cu.form.legal.id" />:
</label>
<form:input type="text" id="legalIdentifier" path="legalIdentifier" required="true"/>
<span class="btn btn-success" id="nifSearch">
<i id="searchIcon" class="fa fa-search"></i>
</span>
<div id="block_addresses_table">
<!--At first the table will be empty-->
<jsp:include page="jsp2.jsp" />
</div>
</form>
<script type="text/javascript">
$(document).ready(function(){}
$('#nifSearch').click(function(){
$(this).button('loading');
// find customer returns jsp2.jsp with data
$('#block_addresses_table').load('findCustomer','nif=' + $('#legalIdentifier').val(),
function(response, status) {
$('#nifSearch').button('reset');
}
);
});
</script>
JSP2 (簡易)
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="datatables" uri="http://github.com/dandelion/datatables" %>
<datatables:table id="addressesList" data="${contractForm.customer.addresses}" row="address" pagingType="bootstrap_simple" dom="tp" sortable="false">
<datatables:column titleKey="customers.cu.form.address" property="completeAddress" />
</datatables:table>
問題
実際の問題は、最初JSP1
のロード時に、テーブルの構成が正しく行われていることです。ただし、ボタンをクリックしてjquery.load()
実行すると、テーブルの構成は、指定したものではなくデフォルトのものになります。
これは、JQuery を使用してテーブルをロードするときに、アプリケーションのいくつかの部分で実際に発生しています。