Struts2 + Bootstrap数据表:如何在不加载所有数据的情况下进行分页
我正在使用Struts2框架的一些应用程序中工作,我在一些List
加载了我们需要的所有数据,然后在JSP文件中,这个列表被迭代并使用bootstrap框架显示在数据表中。
这工作正常,但我知道如何在不加载生成的HTML中的完整数据的情况下执行此操作,就像我有1.000.000(一百万)条记录一样。
我不希望所有记录都在JSP的结果HTML输出中,只有10个首先,并且如果需要,则使用分页加载(使用jQuery?)数据集的其余部分。
添加到EnriqueSanMartín的评论: http : //legacy.datatables.net/usage/server-side
任何好的例子都应该使用iDisplayStart
和iDisplayLength
参数,当然还有"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 }
在您的控制器中,您将执行几乎相同的操作,您将通过POST
或GET
请求提供start
和end
参数
@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文件中有一部分客户记录,由您决定如何显示此子列表结果。