任何列表中的分页<?> Java



我的目标是根据需要为任何列表创建分页,例如下面的列表为 1000 个项目,我想生成一个分页,将项目作为页码、项目数量返回......和其他人在任何分页上添加共享资源。我该怎么做?知道一个可以帮助我的图书馆吗?我将在 Spring 框架下的 REST API 中使用它。

包含多个元素的任何列表

public List<Integer> anyList() {
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
//list.add(...) ;
list.add(1000);
return list;
}

正如@Jason所建议的,请参考他提到的spring-data-jpa参考资料,并遵循spring-data-jpa的分页指南,这是最受欢迎的方式。但是,如果您有来自任何其他数据源的数据,并且在您想对该项目列表进行分页之后,请使用 SpringPageListHolder<?>找到我的解决方案,如下所示:

在控制器中添加测试数据

public static final List<String> names = new ArrayList<>();
static {
for (int i = 0; i < 100; i++) {
names.add("Name #" + i);
}
}

分页项目如下:

@GetMapping(value = "/names", produces = MediaType.APPLICATION_JSON_VALUE)
public Page<String> names(@RequestParam(name = "page") Integer page,
@RequestParam(name = "size") Integer size) {
PagedListHolder<String> pages = new PagedListHolder<>(names);
pages.setPage(page);
pages.setPageSize(size);
return new PageImpl<>(pages.getPageList());
}

PageListHolder 是从主源列表中提取subList的实际类,也请查看它的源代码。而不是每次都希望将其保留为单独的数据源类并继续查询时创建 PageListHolder 的新实例。

相关内容

最新更新