페이징에 필요한 로직이며 아래 그림의 변수를 참고하여 상황에 알맞게 변경하여 사용가능하다.
<%
//한 페이지에 나타낼 row 의 갯수
final int PAGE_ROW_COUNT=5;
//하단 디스플레이 페이지 갯수
final int PAGE_DISPLAY_COUNT=5;
//보여줄 페이지의 번호
int pageNum=1;
//보여줄 페이지의 번호가 파라미터로 전달되는지 읽어와 본다.
String strPageNum=request.getParameter("pageNum");
if(strPageNum != null){//페이지 번호가 파라미터로 넘어온다면
//페이지 번호를 설정한다.
pageNum=Integer.parseInt(strPageNum);
}
//보여줄 페이지 데이터의 시작 ResultSet row 번호
int startRowNum=1+(pageNum-1)*PAGE_ROW_COUNT;
//보여줄 페이지 데이터의 끝 ResultSet row 번호
int endRowNum=pageNum*PAGE_ROW_COUNT;
//전체 row 의 갯수를 읽어온다.
int totalRow=CafeDao.getInstance().getCount();
//전체 페이지의 갯수 구하기
int totalPageCount=
(int)Math.ceil(totalRow/(double)PAGE_ROW_COUNT);
//시작 페이지 번호
int startPageNum=
1+((pageNum-1)/PAGE_DISPLAY_COUNT)*PAGE_DISPLAY_COUNT;
//끝 페이지 번호
int endPageNum=startPageNum+PAGE_DISPLAY_COUNT-1;
//끝 페이지 번호가 잘못된 값이라면
if(totalPageCount < endPageNum){
endPageNum=totalPageCount; //보정해준다.
}
// CafeDto 객체에 위에서 계산된 startRowNum 과 endRowNum 을 담는다.
CafeDto dto=new CafeDto();
dto.setStartRowNum(startRowNum);
dto.setEndRowNum(endRowNum);
//1. DB 에서 글 목록을 얻어온다.
List<CafeDto> list=CafeDao.getInstance().getList(dto);
//2. 글 목록을 응답한다.
%>
'프로그래밍 기초 > JSP' 카테고리의 다른 글
[JSP]EL (Expression Language) 모음 (0) | 2020.01.22 |
---|---|
[ JSP]JSTL 사용하기 위한 다운 및 셋팅 (0) | 2020.01.21 |
[JSP]smarteditor 사용하기 (0) | 2020.01.15 |
[JSP]내장객체 parameter,attribute 그리고 session (0) | 2020.01.12 |
[JSP] filter (0) | 2020.01.12 |