Struts2 + Bootstrap数据表:如何在不加载所有数据的情况下进行分页

我正在使用Struts2框架的一些应用程序中工作,我在一些List加载了我们需要的所有数据,然后在JSP文件中,这个列表被迭代并使用bootstrap框架显示在数据表中。

这工作正常,但我知道如何在不加载生成的HTML中的完整数据的情况下执行此操作,就像我有1.000.000(一百万)条记录一样。

我不希望所有记录都在JSP的结果HTML输出中,只有10个首先,并且如果需要,则使用分页加载(使用jQuery?)数据集的其余部分。

添加到EnriqueSanMartín的评论: http : //legacy.datatables.net/usage/server-side

任何好的例子都应该使用iDisplayStartiDisplayLength参数,当然还有"bServerSide": true datatable() "bServerSide": true属性。

这里是博客post的链接: 使用Ajax使用带有Struts2动作类的jQuery Datatable 。

好吧,这是一个很好的方法,但我必须将request.getParameter转换为struts变量(声明为privated,然后生成getter y setters):

来自: https : //datatables.net/development/server-side/jsp

编辑:此链接有一些request.gP与数据表中的旧值,而不是我们必须使用以下参数:

https://datatables.net/manual/server-side#Sent-parameters

就像在行动中一样:

 private String draw; private String length; private String order; private String search; private String start; getters&setters{} //or make it public 

然后在ajax调用的actionMethod中,对db进行查询并返回数据集。

当我使用struts2 + datatables完全分页时,我将编辑这个答案,

在数据表中有一些必要的配置(请参阅datatables.net中的文档):

  

最好的方法是在DAO中创建一个方法,该方法具有开始和结束的附加参数,例如:

 getCustomers( int start,int end){ // get all customers // sublist the result and get the data from start index to end index } 

在您的控制器中,您将执行几乎相同的操作,您将通过POSTGET请求提供startend参数

 @RequestMapping(value = "/sublistedCustomers", method = RequestMethod.GET) public String getSublistedCustomers(@RequestParam("start") final int start,@RequestParam("end") final int end){ model.addAttribute("cutomersResult",yourDAO.getCustomers(start,end)); } 

现在,您的JSP文件中有一部分客户记录,由您决定如何显示此子列表结果。