Jquery Struts2+;引导数据表:如何在不加载所有数据的情况下分页

Jquery Struts2+;引导数据表:如何在不加载所有数据的情况下分页,jquery,jsp,datatable,struts2,pagination,Jquery,Jsp,Datatable,Struts2,Pagination,我在使用Struts2框架的某个应用程序中工作,在这个操作中,我将我们需要的所有数据加载到一些列表中,然后在JSP文件中,使用bootstrap框架对该列表进行迭代并显示在数据表中 这很好,但我知道如何在不加载结果HTML中的完整数据的情况下执行此操作,就像我有1.000.000(一百万)条记录一样 我不希望所有记录都出现在JSP的结果HTML输出中,只有前10条记录,如果需要,还需要分页加载(使用jQuery?)数据集的其余部分。最好的方法是在DAO中创建一个方法,该方法具有附加参数start

我在使用Struts2框架的某个应用程序中工作,在这个操作中,我将我们需要的所有数据加载到一些
列表中,然后在JSP文件中,使用bootstrap框架对该列表进行迭代并显示在数据表中

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


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

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

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文件中有一部分客户记录,您可以决定如何显示这个子列表结果

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

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文件中有一部分客户记录,您可以决定如何显示这个子列表结果

要补充恩里克·圣马丁的评论:

任何好的示例都应该使用
iDisplayStart
iDisplayLength
参数,当然还有
的“bServerSide”:true
属性
datatable()


此处是博客帖子的链接:

要补充恩里克·圣马丁的评论:

任何好的示例都应该使用
iDisplayStart
iDisplayLength
参数,当然还有
的“bServerSide”:true
属性
datatable()


此处是博客帖子的链接:

这是一种很好的方法,但我必须将request.getParameter转换为struts变量(声明为privated,然后生成getters和setter):

发件人:

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

就像在行动中:

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+数据表进行完整分页时,我将编辑此答案

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


$(文档).ready(函数(){
$('#datatable')。datatable({
“iDisplayLength”:5,
“处理”:对,
“服务器端”:正确,
“ajax”:“分页表操作”
} );
} );

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

发件人:

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

就像在行动中:

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+数据表进行完整分页时,我将编辑此答案

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


$(文档).ready(函数(){
$('#datatable')。datatable({
“iDisplayLength”:5,
“处理”:对,
“服务器端”:正确,
“ajax”:“分页表操作”
} );
} );

来自Nalipu的答案:我必须学习,但这可能有效:)来自Nalipu的答案:我必须学习,但这可能有效:)这段代码不适用于Struts2,也不能解决问题。可以通过使用ActionSupport类和preparedStatement扩展操作来完成anotations技巧(所有的问题都是谁说的,所以它可以从你的代码中复制出来,thx,为此我给你投票:)这段代码不适用于Struts2,也不能解决问题。可以通过使用ActionSupport类和preparedStatement扩展操作来完成anotations技巧(所有的问题都是谁说的,所以它可以从你的代码中复制,thx,为此我给你一个投票:)这是一个好的开始,thx,对于这一点以及对我的问题版本的帮助,我投票支持你的答案,唯一的问题是引导使用新版本的datatable(不是遗留的),因此我*开始字符串不再被传递,请参阅我的答案以了解参数的名称,但显然更容易理解:),无论如何,谢谢您抽出时间来帮助我解决这个问题:)我相信您将能够调整新版本的代码。是的,它的工作、筛选和排序是另一个主题,但这是相同的想法:)这是一个好的开始,thx和我的问题版本的帮助我投票支持你的答案,唯一的问题是引导使用新版本的datatable(不是遗留的),因此我*开始字符串不再被传递,请参阅我的答案以了解参数的名称,但显然更容易理解:),无论如何,谢谢你抽出时间来帮我解决这个问题:)我相信你能为新版本修改代码。是的,它的工作、过滤和排序是另一个主题,但想法是一样的:)这个答案很有用,因为业务逻辑需要从数据表选择值到操作(最常见的情况):好的,最后datatable文档有了答案:)这个答案很有用,因为业务逻辑需要从datatables到操作选择值(最常见的情况):好的,最后datatable文档有了答案:)