如何在struts2操作类中发送或捕获dataTable 1.10参数

如何在struts2操作类中发送或捕获dataTable 1.10参数,struts2,datatables,Struts2,Datatables,我有一个web应用程序,其中我使用DataTable1.10版来显示记录和分页。我是DataTable的新手。我发现很难捕获数据表搜索框中的搜索字符串、排序操作、iTotalRecords、iTotalDisplayRecords、iDisplayLength等参数 我正在为我的web应用程序使用struts2。我已经启用了bServerSide=true并调用“sAjaxSource”:“分页操作”。记录私有列表数据正在jsp页面中填充。但是,我发现很难捕获上面指定的其他参数。输入的字符串指向

我有一个web应用程序,其中我使用DataTable1.10版来显示记录和分页。我是DataTable的新手。我发现很难捕获数据表搜索框中的搜索字符串、排序操作、iTotalRecords、iTotalDisplayRecords、iDisplayLength等参数

我正在为我的web应用程序使用struts2。我已经启用了
bServerSide=true并调用
“sAjaxSource”:“分页操作”
。记录
私有列表数据正在jsp页面中填充。但是,我发现很难捕获上面指定的其他参数。输入的字符串指向哪个action类的变量。?我有一个变量
私有字符串搜索在我的操作类中,我希望搜索框字符串应该被分配到该类

请帮我看看这个。我是否需要将datatable1.10版本的jar文件添加到我的项目中(我不确定是否有jar)

以下是我的JQuery代码:

 var oTable=$(".IncomeTable").dataTable({
    "paging":true,
    "searching": true,
    "bProcessing" : true,
    "bServerSide" : true,
    "bJQueryUI" : true,
    "info":true,
    "bAutoWidth": false,
    "iDisplayLength": 10,
    "aLengthMenu": [[10, 15], [10, 15]],
    "sPaginationType" : "full_numbers",
    "ajax" : "PaginationAction",
    "aoColumns": [
         {"mData":"description","bSearchable": true,"bSortable": true},
         {"mData":"catergory.userCodeName","bSearchable": false,"bSortable": false},
         {"mData":"payee.payeeName","bSearchable": false,"bSortable": false},
         {"mData":"transactionDate","bSearchable": false,"bSortable": false},
         {"mData":"amount","sWidth":"30px","bSearchable": false,"bSortable": false}]
});
操作类变量:

private int iTotalRecords;
private int iTotalDisplayRecords;
private int iDisplayLength;
private String sEcho;
private String sColumns;
private String sSearch;
private String search;
private String sKeyword;
private List<Income> aaData;
private-into-talrecords;
私人国际贸易记录;
私有内部显示长度;
私人字符串sEcho;
私有字符串sColumns;
私人字符串搜索;
私有字符串搜索;
私人串绞字;
私人名单数据;

注意:所有的整数值都是“
0
”,字符串变量是
null
经过几天的谷歌搜索,我对以上文章的结论版本如下

结论:Strut2不会自动将datatable属性的值填充到action类的属性中。但是从jsp页面发送的dataTable属性可以使用HttpServletRequest对象捕获。请参阅下面的代码

HttpServletRequest request=ServletActionContext.getRequest();
String searchFilterString=request.getParameter("search[value]");
// here String 'search[value]' is the parameter name  sent by datatable
是指向从datatables发送到服务器的参数列表以及从服务器发送到datatable的参数列表的链接

下面是一段java代码,我用它来修剪列表以支持我的datatable记录

  int fromIndex=0,toIndex=0;    
  int length=Integer.parserInt(request.getParamter("length"); 
  int start=Integer.parserInt(request.getParamter("start");
  int iDisplayLength=Integer.parserInt(request.getParamter("iDisplayLenght");
  if(length>0)
   {
   fromIndex=(int)(Math.ceil((start+1)/lenght)*length);
   toIndex=fromIndex+length;
   }
  else
  {
   fromIndex=(int)(Math.ceil((start+1)/iDisplayLength)*iDisplayLength);
   toIndex=fromIndex+iDisplayLength;
   }
  if(toIndex>getAaData().size())
  {
  toIndex=getAaData().size();
   }
 setAaData(getAaData().subList(fromIndex,toIndex));
如果有人对以上帖子和我的答案有任何疑问,请告诉我。我没有对上述JQuery代码做任何更改

非常感谢对上述职位的任何更正和建议

注意:如果您在jquery代码中使用
sAjaxSource
而不是
ajax
,则会向服务器传递不同的参数。您可以在
request
对象中了解datatable的参数。