我的目标是创建一个我想要的任何列表的分页,通过例子下面的列表为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的新实例,您希望将其保留为单独的数据源类并保持查询。