[스프링 부트] 게시판 만들기 프로젝트 - 9. Pagination

2023. 4. 19. 23:13스프링부트 프로젝트

1. Pagination

대량의 데이터를 일정한 단위로 분할하여 페이지 단위로 보여주는 UI 기술

사용자가 요청하는 양이 많은 데이터를 한 번에 로드하지 않아도 되므로 웹 애플리케이션의 성능을 향상시킬 수 있음

 

package com.jeong.board.service;

import lombok.Data;

@Data
public class PageResolver {
	private int page;	// currentPage
	private int pageSize;	// rowPerpage
	private int total;
	private int totalPage;
	private int pagePerBlock = 5;
	private int startPage;// startPage
	private int endPage;//endpade

	public PageResolver(int page, int pageSize, int total) {
		this.page = page;
		this.pageSize = pageSize;
		this.total = total;

		totalPage = (int)(Math.ceil((double)total/pageSize));
		startPage = page - (page - 1) % pagePerBlock;
		endPage = startPage + pagePerBlock - 1;
		if (endPage > totalPage) endPage = totalPage;
	}
}

△ PageResolver.java