java - Play Framework 2 对来自 Web 服务的数据进行分页

标签 java playframework playframework-2.0

存在多个 Play Framework 分页问题,​​但全部都使用 JPA 或 ebean。我需要对从网络服务返回的数据进行分页。有没有办法使用 Play 分页模块来做到这一点,还是我只能使用 jQuery?我也是来自 asp.net MVC 的 Java 新手。 Web 服务正在返回我正在查询的任何模型的列表。

最佳答案

您不应在 Play Controller 中对 Web 服务的结果进行分页,因为这不是最佳选择,请考虑 3 种情况(按顺序)

假设您想要一次显示 10 个项目,但您的生成器为示例查询返回 100.000(这意味着 10.000 个页面)

  1. 分页应该由数据生成器(在本例中为 Web 服务)完成,因此您应该发送包含数据的查询:您在寻找什么您想要获得多大的页面您需要哪个页面,即:?q=pagination&size=10&page=123。这将响应第 123 页上的 10 项列表。如果您可以更改网络服务以添加分页,那么这是最佳选择。
  2. 如果 Web 服务不提供分页,则立即获取所有结果并使用 jQuery 对其进行分页。因此,如果您将获得 100.000 个项目,请将它们全部放入客户端,并确保每次页面更改都不会导致查询 Web 服务。糟糕的选择,但仍然比下一个更好。
  3. 您可以迭代返回的结果以轻松地将其拆分为页面,计算总金额等。如果您使用 Controller 对其进行分页,则在每次页面更改时,它将获取 100.000 个项目,然后拆分以仅显示其中 10 个。戏剧:)

因此,如果您不能使用第一个选项并且不想使用 jQuery,请在服务器上对结果进行一些缓存(即,通过将结果作为单独的行存储在数据库中) - 在这种情况下,您将能够使用Ebean进行本地搜索和分页。

关于java - Play Framework 2 对来自 Web 服务的数据进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12957890/

相关文章:

java - CompareTo 和 collections.sort() 错误

具有端口和数据线的 JavaSound 混音器?

java - 我们可以在 switch case java 中添加标签吗

PlayFramework 2.4 在应用程序启动后运行一些代码

mysql - Play框架的 future 不会变得更快

java - Android - 从应用程序发送电子邮件崩溃电子邮件 - 强制关闭

java - onRequest() 在 Play 中不起作用!框架2.5.x

java - IntelliJ 12.0.2 - 测试源文件夹中的元素未编译

json - Scala Play json 组合器以验证相等性

json - Play Json 读取和字符串