当前位置: 首页 > 知识库问答 >
问题:

Spring分页:参数映射和页面结果问题

袁泰
2023-03-14

我想使用Spring工具来实现我的分页。我目前没有底层html" target="_blank">数据库,想要从页面中提供的虚拟列表中输入请求。REST控制器中的请求如下:

@Override
@ResponseStatus(HttpStatus.OK)
@RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public Page<ComponentDto> getComponents(@RequestParam("searchTerm") Optional<String> searchTerm, Pageable pageRequest) {
    return componentService.getComponents(searchTerm, pageRequest);

当我卷曲或使用swagger发送请求时,总是使用可分页的默认值,而不是给定的大小、页面和排序等请求参数。请求URL看起来像:

http://localhost:8090/zoo-service/v1/components?pageNumber=2&pageSize=2

自动完成映射需要什么吗?另一个问题是,如果我对页面和大小使用两个int参数,并使用静态PageRequest调用为我的服务提供可分页的页面。评估和页面创建如下所示:

if (searchTerm.isPresent() && StringUtils.isNoneBlank(searchTerm.get())) {
        List<ComponentDto> list  = componentMockProvider.getMockedComponents().stream().filter(it -> it.getName().contains(searchTerm.get())).collect(Collectors.toList());
        result = new PageImpl<ComponentDto>(list, pageRequest, list.size());
    }
    else{
        result = new PageImpl<ComponentDto>(componentMockProvider.getMockedComponents(), pageRequest, componentMockProvider.getMockedComponents().size());
    }
    return result;

页面始终提供完整的内容列表,但分页信息是正确的。所以我的列表包含6个元素,我想要第二页和页面大小是3,页面知道这个信息双交付的内容仍然是6个元素的完整列表。

我希望你明白我的问题是什么谢谢你的帮助!

共有1个答案

董琦
2023-03-14

我想出了如何处理分页。对于第一个问题,我只有一个招摇过市的问题,即提供pageSize和pageNumber作为参数。这是Pageable无法解析参数的第一个问题。对于第二个问题,我自己实现了内容的计算,并将计算出的列表作为内容传递给PageImpl构造函数。

 类似资料:
  • 我在Spring绘制地图时遇到了麻烦。我有一个Spring web项目,有用户和数据库。我得到了这个网站。xml: 今年Spring: 这是我的控制器: 我想把所有的请求映射到网址“http://localhost:8080/CRUDWebAppMavenized/users”将打开users.jsp.但我总是只看到错误页面。 IDE告诉我: 警告:org.springframework.web.

  • 我在看一些旧代码,我试图重写它,但我遇到了一个问题。 这是运行良好的旧代码: 但是我使用的是Spring Data 2,其中的页面映射方法采用了一个函数而不是一个转换器,所以我不知道如何重写这个。 我读了这个主题:如何映射页面 有人能用SpringData2方法(Function而不是Converter)翻译上面的代码片段吗?

  • 我已经为我的城市选项卡创建了ajax代码,以显示来自ajax的相应城市数据。 我使用了以下代码: 下面是我要在ajax内容上加载的div 现在我已经使用以下jquery插件对我的项目进行分页http://cssglobe.com/post/9801/easy-paginate-jQuery-plugin-for-pagination 但是当我在ajax响应中使用它时,分页不起作用。 你能帮我一下我

  • 我想在单页中获得所有的结果,我已经尝试过了 上面不起作用,有什么方法可以做到这一点吗?似乎不能像这里要求的那样从自定义查询中实现。

  • 问题内容: 想象一下,我有两种记录:一个存储桶和一个项目,其中存储在存储桶中的项目,而存储桶中的项目可能相对较少(通常不超过4个,从不超过10个)。这些记录被压缩为一个(具有更多存储桶信息的项目),并放置在Elasticsearch中。我要解决的任务是通过依赖项属性的过滤查询一次找到500个存储桶(最大),其中包含所有相关项,而我受困于限制/抵消聚合。我该如何执行此类任务?我看到聚合使我可以控制相

  • 问题内容: 我想使用Elasticseach聚合器查询的’size’和’from’属性进行分页。 这可能吗 ? 目前,我只知道size属性= 0可获得无限结果 问题答案: 聚合中的分页功能尚未实现。您可以在大小上使用组合,而在构面中排除特征。