🔍 페이징 처리
➰ 페이징 처리에 필요한 데이터
- curPage : 브라우저에서 선택한 현재 페이지 번호 👉🏻 전달파라미터로 전달됨
- totalCount : 총 게시글 수 👉🏻 DB에서 조회
✔ 검색, 필터링 처리했을 때 총 게시글 수 변화를 고려해야 함
- listCount : 한 페이지당 보여질 게시글 수 👉🏻 개발자가 직접 설정할 수 있도록 함
- totalPage : 총 페이지의 수 👉🏻 계산으로 알아내기
totalPage = totalCount / listCount;
if(totalCount % listCount > 0) totalPage++;
//보정 작업
if(curPage > totalPage) curPage = totalPage;
- pageCount : 한 화면에 보여질 페이지네이션의 개수 👉🏻 개발자가 직접 설정할 수 있도록 함
- startPage : 화면에 보이는 페이지네이션의 시작 번호 👉🏻 계산으로 알아내기
- endPage : 화면에 보이는 페이지네이션의 끝 번호 👉🏻 계산으로 알아내기
startPage = curPage - 5;
endPage = curPage + 4;
//방법1. 현재 페이지를 기준으로 이전 5개, 이후 4개 보여주기
if(startPage < 1) atartPage = 1;
if(endPage > totalPage) endPage = totalPage;
//방법2. pageCount 수만큼 그룹핑해서 보여주기
startPage = ((curPage-1)/pageCount)*pageCount + 1; ➡ 나누어떨어지는 경우를 생각해서 (curPage-1)가 필요
endPage = startPage + pageCount -1;
if(endPage > totalPage) endPage = totalPage;
- startNo : 화면에 보여지는 게시글의 시작 번호 👉🏻 계산으로 알아내기
startNo = (curPage-1) * listCount + 1;
- endNo : 화면에 보여지는 게시글의 끝 번호 👉🏻 계산으로 알아내기
emdNo = curPage * listCount;
https://blog.naver.com/solsol7213/222803585406