728x90
페이징 처리 중복코드 제거를 위한 페이징 유틸 클래스 만들기
import lombok.Getter;
@Getter
public class PageData {
private int tot; //페이지 총 개수
private int from; //출력되는 페이지 시작번호
private int to; //출력되는 페이지 마지막 번호
//더보기 기능 구현
private boolean hasNext; //다음 페이지가 있는지 여부
private int page; //현재 페이지 번호
//페이지 정보를 생성하는 정적 메서드. PageData 객체를 생성할 수 있다.
/**
* @param page : 페이지번호
* @param limit : 페이지당 게시글 수
* @param rowCount : 총 게시글 수
* @param RANGE : 표현되는 페이지번호 개수 default RANGE=10
* @return from(출력되는 페이지 시작번호), to(출력되는 페이지 마직막 번호), tot(페이지 총 개수)
*/
public static PageData create(int page, int limit, int rowCount) {
return new PageData(page, limit, rowCount);
}
//페이지 정보를 생성하는 정적 메서드. 페이지 범위를 추가로 지정할 수 있다.
/**
*
* @param page : 페이지 번호
* @param limit : 페이지당 게시글 수
* @param rowCount : 총 게시글 수
* @param RANGE : 한 페이지에 표현되는 페이지 번호(기본값은 10)
* @return from(출력되는 페이지 시작번호), to(출력되는 페이지 마지막 번호), tot(페이지 총 개수)
*/
public static PageData create(int page, int limit, int rowCount, int RANGE) {
return new PageData(page, limit, rowCount, RANGE);
//create 메서드는 페이지 정보를 생성하는 정적 메서드
}
//페이지 정보를 초기화하는 역할을 하는 생성자
public PageData(int page, int limit, int rowCount, int RANGE) {
//rowCount 값이 limit * page보다 크면 true를, 그렇지 않으면 false를 hasNext에 할당
this.hasNext=rowCount > limit*page?true:false;
this.page = page; //현재 페이지 번호
this.tot = rowCount/limit; //총 페이지 개수
//100 / 10 : 10개
if(rowCount % limit > 0) this.tot++; //나머지가 존재하면 1 증가
//출력되는 페이지 번호 범위를 나타냄
int rangeNo = page/RANGE; //1~9 : 0 10 : 1 //1~9페이지는 0번 10~ 1번
// 1/10 현재 페이지 번호를 한 페이지에 표현되는 페이지 번호 개수로 나눈 몫을 구함
if(page % RANGE > 0)rangeNo++;
this.to = RANGE * rangeNo; //페이지 마지막 번호
this.from = this.to - RANGE+1; //페이지 시작 번호
//마지막 번호가 총 페이지 개수를 초과한다면, 마지막 번호를 총 페이지 개수로 조정
if(this.to > this.tot) this.to = this.tot;
}
//RANGE를 10으로 지정하여 페이지 정보를 초기화하는 생성자
private PageData(int page, int limit, int rowCount){
//기본 생성자에서 다른 생성자를 호출
this(page, limit, rowCount, 10);
}
}
@param 주석은 메서드의 파라미터에 대한 설명을 제공하는 역할을 한다. JavaDoc 형식으로 작성된 주석으로서, 개발자가 메서드를 사용할 때 파라미터의 의미와 역할을 이해할 수 있도록 도움을 준다.
728x90
'프로젝트 > 게시판' 카테고리의 다른 글
[SpringBoot] 게시판 11. 댓글 기능 - 비동기 구현 (0) | 2023.08.13 |
---|---|
[SpringBoot] 게시판 9. 게시글 검색 기능 - 비동기 구현 (0) | 2023.08.10 |
[SpringBoot] 게시판 8. 게시글 수정 기능 구현 (0) | 2023.08.04 |
[SpringBoot] 게시판 7. 게시글 삭제 기능 구현 (0) | 2023.08.04 |
[SpringBoot] 게시판 6. 게시글 입력 기능 구현 (0) | 2023.08.03 |