【发布时间】:2017-12-20 19:53:58
【问题描述】:
我正在使用 Spring MVC 创建一个 Web 应用程序,但 Spring Data 不支持我的数据库。如何在不使用 Spring Data 的情况下添加分页。我的应用程序有一个表格,其中列出了通过能够检索分页结果的服务检索到的对象(我能够传入页面和结果大小)。当用户按日期范围搜索或在 URL 中放置参数的任何其他搜索时,就会出现问题。我想不出一种方法来为“下一个”和“上一个”链接生成正确的 url。
【问题讨论】:
我正在使用 Spring MVC 创建一个 Web 应用程序,但 Spring Data 不支持我的数据库。如何在不使用 Spring Data 的情况下添加分页。我的应用程序有一个表格,其中列出了通过能够检索分页结果的服务检索到的对象(我能够传入页面和结果大小)。当用户按日期范围搜索或在 URL 中放置参数的任何其他搜索时,就会出现问题。我想不出一种方法来为“下一个”和“上一个”链接生成正确的 url。
【问题讨论】:
如果 Spring Data 不支持您的数据库,您可以重用 PageImpl 类来包装您的结果,而不是在查询中使用页面数据,只需包装您的搜索结果。
List<T> content = your result set;
Pageable pageable= new PageRequest(int page, int size);
long total = cound found elements;
PageImpl pager = new PageImpl(content,pageable,cound );
在这种情况下,您只需重用类,而无需进行计算。
class PageRequest 有previous(), next() 方法,所以不需要计算。
如果您不想将 spring 数据作为依赖项,您可以复制并放入您需要的项目页面类中。
【讨论】: