Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 数据表服务器端分页_Java_Spring_Datatables - Fatal编程技术网

Java 数据表服务器端分页

Java 数据表服务器端分页,java,spring,datatables,Java,Spring,Datatables,我有一个工作的SpringREST应用程序,客户端分页,默认为DataTables,一切正常。现在我需要将其更改为服务器端分页,我遇到了问题,因为我不知道如何从数据表中获取客户机希望看到的页码信息。我在DT手册中找不到任何有用的东西。当你说Datatable时,我想你说的是jQuery插件 要激活服务器端分页,您需要通过 "serverSide": true, 像这样: $('#example').DataTable( { "processing"

我有一个工作的SpringREST应用程序,客户端分页,默认为DataTables,一切正常。现在我需要将其更改为服务器端分页,我遇到了问题,因为我不知道如何从数据表中获取客户机希望看到的页码信息。我在DT手册中找不到任何有用的东西。

当你说
Datatable
时,我想你说的是jQuery插件

要激活服务器端分页,您需要通过

"serverSide": true,
像这样:

$('#example').DataTable( {
    "processing": true,
    "serverSide": true,
    "ajax": "/your_url"
});
执行上述操作将激活服务器端分页。但是您也需要在服务器端做一些更改。让我们一步一步地看

1.当您将
serverSide
标记为
true
DataTables插件向AJAX调用添加自定义参数,其中包含以下信息

order:  asc
start:  20
length: 10

// and many more.
单击“下一页”按钮时,您可以检查并查看在请求中传递的参数

2.类似地,DataTables插件需要一些字段作为响应,以便保留分页逻辑。 您可以检查并查看响应数据

3.现在,您的API中的更改位于服务器端 对于控制器API中的GET和attr POST调用,您需要将这些参数添加为
queryParam

order: asc
start: 20
length: 10
4.服务层更改-数据库查询 在服务层中,您可以从数据库中获取详细信息

如果是MySQL,您需要获取记录总数,并在搜索查询中传递一个LIMIT子句
LIMIT 10,10

例如:

使用
start
length
计算下一组记录

这可能会更棘手,但如果你理解并正确实施,这会很有趣


阅读更多详细信息,其中还包含代码和实时演示。

请参阅关于DataTables服务器端处理的示例:

更改页面后,您可以按以下格式捕获对服务器的请求: ?draw=3&列…&顺序=0&dir=asc&start=20&length=10&搜索%5Bvalue%5D=&搜索%5Bregex%5D=false&&ux=1534436781912

这意味着DataTable请求第3页(draw=3),按第一列升序排序


在服务器端(REST),您可以通过(例如)请求获取页码。getParameter(“draw”)

非常感谢您的回答,但我并不是什么都清楚。你能告诉我怎样才能得到关于起点和长度的信息吗?在示例中,我只看到更改绘图编号,但有关开始和长度的信息在哪里?对不起,如果问题是琐碎的…我用了相同的例子,我可以看到开始和长度信息有。最后一个月有售。我必须向下滚动到最后才能看到开始:10长度:10搜索[值]:搜索[正则表达式]:false
order: asc
start: 20
length: 10
SELECT * FROM User LIMIT 20,10;