天天看點

SpringBoot--将List轉為Page(清單轉分頁)的工具類

簡介

說明

代碼

工具類

package com.knife.router4j.server.common.util;

import com.knife.router4j.server.common.entity.PageRequest;
import com.knife.router4j.server.common.entity.PageResponse;

import java.util.List;

public class PageUtil {
    public static <T> PageResponse<T> toPage(List<T> list, PageRequest pageRequest){
        int startIndex = (int) (pageRequest.getCurrent() * pageRequest.getSize());
        int allSize = list.size();
        int dataSize = allSize - startIndex;
        List<T> listResult = list.subList(startIndex, dataSize - startIndex);

        PageResponse<T> pageResponse = new PageResponse<>();
        pageResponse.setSize(pageRequest.getSize());
        pageResponse.setCurrent(pageRequest.getCurrent());
        pageResponse.setTotal(allSize);
        pageResponse.setDataList(listResult);

        return pageResponse;
    }
}      

分頁請求

package com.knife.router4j.server.common.entity;

import lombok.Data;

@Data
public class PageRequest {
    /**
     * 每頁的大小
     */
    private long size;

    /**
     * 目前是第幾頁
     */
    private long current;
}      

分頁響應

package com.knife.router4j.server.common.entity;

import lombok.Data;

import java.util.List;

@Data
public class PageResponse<T> {
    /**
     * 每頁的大小
     */
    private long size;

    /**
     * 目前是第幾頁
     */
    private long current;

    /**
     * 總的資料個數
     */
    private long total;

    /**
     * 資料清單
     */
    private List<T> dataList;
}      

用法

PageUtil.toPage(list, pageRequest);