Notice
Recent Posts
Recent Comments
Link
«   2024/06   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Tags
more
Archives
Today
Total
관리 메뉴

WON.dev

PageDTO.java 본문

SPRING/chapter04_MVC

PageDTO.java

GAWON 2023. 7. 18. 09:17
package org.joonzis.domain;

import lombok.Data;

@Data
public class PageDTO {
	private int startPage;      //시작 페이지 번호
	private int endPage;		//끝 페이지 번호
	private boolean prev, next; //이전 , 다음페이지 이동
	private int total;			//전체 게시물 수		
	private Criteria cri;		
	
	//페이지 번호를 10개씩 본다는 가정
	public PageDTO(Criteria cri, int total) {
		this.cri = cri;
		this.total = total;
		
		this.endPage = (int)(Math.ceil(cri.getPageNum() / 10.0)) * 10;
		//1페이지 : Math.ceil(0.1) * 10 = 10
		//10페이지 : Math.ceil(1) * 10 = 10;
		//11페이지 : Math.ceil(1.1) * 10 = 20;
		
		this.startPage = this.endPage - 9;
		//만약 10개씩 보여준다면 시작 번호는 무조건 끝 번호에서 9만큼 빼면 된다.
		//ex) 2 3 4 5 6 7 8 9 10 11
		
		int realEnd = (int)(Math.ceil((total * 1.0) / cri.getAmount()));
		if(realEnd < this.endPage) {
			this.endPage = realEnd;
		}
		
		//전체 데이터 수 (total)가 80이면 끝 번호(endPage)는 8 이된다
		//만약 끝 번호(endPage)와 한 페이지 당 출력되는 데이터 수(amount)의 곱이
		//전체 데이터 수(total)보다 크면ex) 11* 10 > 80
		//다시 total을 이용해서 다시 계산해야 한다
		
		this.prev = this.startPage > 1; //1보다 크면 true
		this.next = this.endPage < realEnd; //현재 끝 번호 보다 실제 끝 페이지가 더 크면 true 
		
		
	}
}

'SPRING > chapter04_MVC' 카테고리의 다른 글

BoardAttachMapper.java  (0) 2023.07.18
ReplyVO.java  (0) 2023.07.18
MemberVO.java  (0) 2023.07.18
Criteria.java  (0) 2023.07.18
BoardVO.java  (0) 2023.07.18