날아라쩡글이의 블로그입니다.
paging처리하기, 페이징처리하기 본문
728x90
반응형
- 한페이지에 표시할 데이터
int rowsParpage = 10;
10개까지 표시할 부분을 final로 상수로 만든다. 10개 표현, 20개 표현 - 현재 표시할 page 번호 입력하기
- 메인페이지에서 cpno를 1로 링크의 값을 설정한다. 전체사원리스트에서 currentPageNo가 값을 받기위해
- int currentPageNo = Integer로 getParemeter을 입력받는다.
- <a href ="list.jsp?cpno=<%=pege%><%=pege%>으로 표시할 것이다.
- 범위 설정하기
- int begin= (currentPageNo -1) * rowpage +1
- 로 시작값을 설정한다.
- currentPageNo의 값이 1일 경우 rowpage까지의 값이 0 +1 =1
- currentPageNo의 값이 2일 경우 rowpage까지의 값이 10 +4 = 11로써 시작 범위를 설정할 수 있다.
- int end = currentPageNo * rowpage 으로 설정한다.
- int begin= (currentPageNo -1) * rowpage +1
- 여기까지가 페이지 네비게이션을 표시한 것이다.
- 전체 사원수 갯수
- totalRecord는 Employee를 count(*) 한 숫자를 db에서 출력한다.
- 전체 페이지 갯수
- 천장값 (전체수 /상수) 으로 계산해준다.
- math.ceil은 double타입이기 때문에 int로 형변환 시키는 것을 잊지않는다.
- int pageCount = (int)(Math.ceil((double)totalRecord/ROWSPERPAGE))로 작성한다.
- 그리고 일반 for문으로 적용한다.
3항연산자로 class를 설정할 수 있다.
이부분도 화면에 5개씩만 표현하고 next처럼 표현할 수 있다.
한 화면에 표시할 페이지 번호 갯수 조절하기
- 페이지 갯수를 이용하여 블록갯수를 계산할 수 있다.
- 페이지에 대한 블록을 작성하기 위한 변수를 선언한다.
- final int pagesPerBlock = 5;
- 5개씩 나눠서 보이기 위하여
- 전체 블록 갯수 계산하기
- int totalBlocks = (int)(Math.ceil(double)pageCount/pagesPerBlock));
- MathCeil로 감싸고, 페이지 갯수 / 나누고 싶은 블록갯수로 나눠준다.
- 현재의 블록 갯수 계산하기
- int currentBlock = (int)(Math.ceil((double)currentPageNo/pagesPerBlock));
- 현재의 블록갯수를 페이지의 숫자를 받는 변수로 나눈다.
- 현재 블록의 시작페이지와 끝페이지의 번호를 계산한다.
- int beginPageNo = (currentBlock - 1)*pagesPerBlock + 1; //현재 블록의 시작페이지번호 : 1
int endPageNo = currentBlock * pagesPerBlock; //현재 블록의 끝 페이지 번호 : 5
- int beginPageNo = (currentBlock - 1)*pagesPerBlock + 1; //현재 블록의 시작페이지번호 : 1
- 이전 버튼과 다음버튼으로 가는 값 설정하기
- <a href="list.jsp?cpno=<%=(currentBlock - 1)*pagesPerBlock %>" class="<%=currentBlock == 1 ? "disabled" :"" %>">이전</a>
- <a href="list.jsp?cpno=<%=currentBlock*pagesPerBlock + 1 %>" class="<%=currentBlock == totalBlocks ? "disabled" :""%>">다음</a>
- 계산 식을 입력한다.
페이징 처리하기
- 공통적인
- 현재페이지번호 x
- 한 화면에 표시할 행의 갯수 y
- 한 화면에 표시할 페이지번호의 갯수 z
- 페이지 번호에 해당하는 리스트 출력하기
- 데이터 조회범위 계산하기
- int begin = (x-1)*y + 1;
- int end =x*y;
- 조회 범위에 해당하는 데이터 조회
- 데이터 조회범위 계산하기
- 페이지 번호에 해당하는 페이지 내비게이션 출력하기
- 전체 데이터 갯수 조회하기
- int totalRecords = dao.getTotalCount();
- 전체 페이지 갯수 계산
- int totalPages = (int)(Math.ceil((double)totalRecords/y));
- 전체 페이지 블록 갯수 계산
- int totalPageBlocks = (int)(Math.ceil((double)totalPages/z));
- 현재 페이지 번호의 블록 번호 계산
-
- int currentBlock = (int)(Math.ceil((double)x/z));
-
- 현재 블록의 시작페이지번호와 끝페이지 번호 계산
- int beginPageNo = (currentBlock - 1)*z +1;
- int endPageNo = currentBlock*z;
- 전체 데이터 갯수 조회하기
if(currentBlock == totalPageBlocks) {
endPageNo = totalPages;
}
<a href="list.jsp?cpno=<%=(currentBlock-1)*z%>" class="<%=currentBlock == 1 ? "disabled" :""%>">이전</a>
for(int pno=beginPegeNo; pno <= endPageNo; pno ++) {
<a herf="list.jsp?cpno=<%=pno%>" class=" <%=pno==x ? "acitve" : "" >"> <%=pno%></a>
}
<a href="list.jsp?cpno=<%=(currentBlock*z%>" class="<%=currentBlock == 1 ? "disabled" :""%>"다음</a>
반응형
'중앙 HTA (2106기) story > JSP story(Apache)' 카테고리의 다른 글
bootstrap설정하기 (0) | 2021.11.16 |
---|---|
절대주소와 상대주소 (0) | 2021.11.15 |
JSP tip (0) | 2021.11.11 |
HttpservletRequest, HttpservletResponse (0) | 2021.11.11 |
post,get2가지 방식 (0) | 2021.11.11 |
Comments