221027 Spring 페이징 처리

wonny·2022년 10월 26일
0

수업 복습

목록 보기
8/14
	//페이징에 필요한 변수
	int totalPage; //총 페이지 수
	int startPage; //각 블럭의 시작 페이지
	int endPage; //각 블럭의 끝 페이지
	int start; //각 페이지의 시작 번호
	int perPage = 3; //한 페이지에 보여질 글 갯수
	int perBlock = 5; //한 블럭 당 보여지는 페이지 갯수

	//총 갯수: 
	totalCount = dao.getTotalCount();
	
	//총 페이지 갯수 구하기
	totalPage = totalCount/perPage + (totalCount%perPage==0?0:1);

	//각 블럭의 시작페이지(ex.현재 페이지가 3인 경우, 시작:1, 끝:5 / 현재: 6, 시작: 6, 끝: 10)
	startPage = (currentPage -1)/perBlock*perBlock+1;
	endPage = startPage + perBlock -1;

	//총 페이지 수가 8이라고 할 때, 2번째 블럭은 startPage= 6, endPage=10이 되어야 하는데 총 페이지가 8까지니까 endPage를 10=>8로 수정해줘야 한다
	if(endPage>totalPage){
		endPage = totalPage;
	}

	//각 페이지에서 불러올 시작 번호
	//ex.현재페이지 1일 경우 start=1 / 현재 2, start = 6 / 
	start = (currentPage-1)*perPage;

	//각 페이지에서 필요한 게시물 불러오기
	List<BoardDto>list=dao.getList(start, perPage);

	//각 글 앞에 붙일 번호 붙이기
	//ex. 총 글이 20개이면 1페이지는 20부터~, 2페이지는 15부터~
	//출력해서 1씩 감소하면서 출력
	int no = totalCount-(currentPage-1)*perPage;
	
	//출력에 필요한 변수들을 request에 저장
	
	mview.addObject("totalCount", totalCount);
	mview.addObject("list", list);
	mview.addObject("totalPage", totalPage);
	mview.addObject("startPage", startPage);
	mview.addObject("endPage", endPage);
	mview.addObject("currentPage", currentPage);
	mview.addObject("no", no);

    

<c:if test="${totalCount>0}">
	<div style="width: 800px; text-align: center;"  >
		<ul class="pagination">
		
		<!-- 이전 -->
		<c:if test="${startPage>1}">
			<li>
				<a href="list?currentPage=${startPage-1}">이전</a>
			</li>
		</c:if>
		
		<c:forEach var="pp" begin="${startPage}" end="${endPage}">
			<c:if test="${currentPage==pp}">
				<li class="active">
					<a href="list?currentPage=${pp}">${pp}</a>
				</li>
			</c:if>
			<c:if test="${currentPage!=pp}">
				<li>
					<a href="list?currentPage=${pp}">${pp}</a>
				</li>
			</c:if>
		
		</c:forEach>
		
		
		<!-- 다음 -->
		<c:if test="${endPage<totalPage}">
			<li>
				<a href="list?currentPage=${endPage+1}">다음</a>
			</li>
		</c:if>
		
		</ul>
	</div>
</c:if>
profile
하다 보면 되겠지요..!

0개의 댓글