PageResponse.java 736 B

123456789101112131415161718192021222324252627282930
  1. package nju.seec.helper.controller.response;
  2. import lombok.AllArgsConstructor;
  3. import lombok.Data;
  4. import org.springframework.data.domain.Page;
  5. import java.util.List;
  6. /**
  7. * @author cst
  8. */
  9. @Data
  10. @AllArgsConstructor
  11. public class PageResponse<T> {
  12. private List<T> data;
  13. private PageInfo page;
  14. public static <T> PageResponse<T> of(Page<T> page) {
  15. return new PageResponse<>(page.getContent(), PageInfo.of(page.getNumber(), page.getSize(), page.getTotalPages(), page.getNumberOfElements()));
  16. }
  17. @Data
  18. @AllArgsConstructor(staticName = "of")
  19. public static class PageInfo {
  20. private int number;
  21. private int size;
  22. private int totalPages;
  23. private int totalElements;
  24. }
  25. }