PageResult类
时间: 2025-01-13 15:44:37 浏览: 82
### PageResult 类的定义
PageResult 是一种常见的用于分页查询结果封装的数据传输对象 (DTO),通常包含两个主要部分:一个是当前页面的数据列表;另一个是有关分页的一些元数据,比如总记录数、总页数等。这种设计模式有助于前端应用更方便地处理来自服务器端的大规模数据集。
```java
public class PageResult<T> {
private List<T> list; // 当前页码对应的结果集
private long totalElements; // 总条目数量
private int totalPages; // 总页数
private int pageNumber; // 请求的具体页号
private int pageSize; // 每一页显示多少项
public PageResult() {}
// Getters and Setters...
}
```
### 使用场景
当应用程序需要展示大量数据时,为了提高用户体验并减少一次性加载过多信息带来的性能开销,可以采用分页技术来逐步呈现内容。此时就可以利用 `PageResult` 对象作为 API 响应的一部分返回给客户端[^1]。
### 实现细节
假设有一个 RESTful Web Service 接口负责提供商品列表的信息,在这个服务内部会调用 DAO 层完成实际数据库访问工作,并最终构建出一个 `PageResult<Product>` 的实例传递出去:
#### 控制器层代码片段
```java
@GetMapping("/products")
public ResponseEntity<PageResult<Product>> getProducts(
@RequestParam(defaultValue = "0") Integer page,
@RequestParam(defaultValue = "10") Integer size) {
PageRequest pageable = PageRequest.of(page, size);
Page<Product> productPage = productService.findAll(pageable);
PageResult<Product> result = new PageResult<>();
result.setList(productPage.getContent());
result.setTotalElements(productPage.getTotalElements());
result.setTotalPages(productPage.getTotalPages());
result.setPageNumber(page);
result.setPageSize(size);
return ResponseEntity.ok(result);
}
```
此段逻辑展示了如何接收 HTTP GET 请求中的分页参数(page 和 size),并通过 Spring Data JPA 中提供的 `PageRequest` 工具创建分页请求对象,之后再通过业务逻辑获取到具体的分页数据并将它们组装成 `PageResult` 形式的响应体发送回给用户[^2]。
阅读全文
相关推荐




















