我正在使用Struts2(版本2.3.24)开发Web应用程序,并且我大量使用ajax进行分页。我有这样的表格:
<s:form id="pagination-form">
<s:token id="session_token" />
<s:hidden id="entityClass" value="%{paginator.getEntityClassString()}" />
<s:hidden id="paginator-orderColumn" value="%{paginator.orderColumn}" />
<s:hidden id="paginator-order" value="%{paginator.order}" />
<s:hidden id="paginator-firstItem" value="%{paginator.firstItem}" />
<s:hidden id="paginator-resultsCount" value="%{paginator.resultsCount}" />
<s:hidden id="paginator-perPageItems" value="%{paginator.perPageItems}" />
<s:hidden id="paginator-currentPage" value="%{paginator.currentPage}" />
</s:form>
这是相应的ajax调用:
$.ajax({
url: route/to/action,
type: 'POST',
data: {
'entityClass': $('#entityClass').val(),
'struts.token.name': $(form).find('input[name=\'struts.token.name\']').val(),
'token': $(form).find('input[name=token]').val(),
'paginator.orderColumn': $('#paginator-orderColumn').val(),
'paginator.order': $('#paginator-order').val(),
'paginator.firstItem': $('#paginator-firstItem').val(),
'paginator.resultsCount': $('#paginator-resultsCount').val(),
'paginator.perPageItems': $('#paginator-perPageItems').val(),
'paginator.currentPage': $('#paginator-currentPage').val()
},
dataType: 'json',
success: function (response) {
// EMPTY THE TABLE
// ITERATE RESULTS
// POPULATE THE TABLE
},
error: function (jqXhr, textStatus, errorThrown) {
// SHOWS ERROR MESSAGE
}
});
当我进行呼叫时,令牌无效,我需要的是每次我必须进行分页呼叫时刷新它。我找到了有关该主题的this question和this question。有更好的方法来刷新令牌?或者,另一方面,我做错了吗?