로직은 자바 클래스로, 출력부분은 JSTL 코드로 작성했는데.. 페이징 부분 코드는 다음과 같다.
[ 자바 클래스 ]
//한 페이지 당 보여줄 글 갯수 17:private final static int pageSize = 4; 18://페이지그룹안의 페이지 갯수 ex) [이전] 1 2 3 4 5 [다음] 일 경우 페이지 갯수는 5 19:private final static int pageGroupSize = 3;
String pageNum = request.getParameter("pageNum");//페이지 번호 25: 26:if (pageNum == null) { 27: pageNum = "1"; 28: } 29: 30: int currentPage = Integer.parseInt(pageNum); 31: int startRow = (currentPage - 1) * pageSize + 1;//한 페이지의 시작글 번호 32: int endRow = currentPage * pageSize;//한 페이지의 마지막 글번호 33: int count = 0; 34: int number=0;
35: ArrayList articleList = newArrayList(); 36: BoardDAO dbPro = BoardDAO.getInstance();//DB연동 37: count = dbPro.getTotalCnt();//전체 글의 수 38: 39:if (count > 0) { 40:if(endRow>count) 41: endRow = count; 42: articleList = dbPro.select(startRow,endRow);//현재 페이지에 해당하는 글 목록 43: 44: } else { 45: articleList = null; 46: } 47: 48: number=count-(currentPage-1)*pageSize;//글목록에 표시할 글번호 49: 50://페이지그룹의 갯수 51://ex) pageGroupSize가 3일 경우 '[1][2][3]'가 pageGroupCount 개 만큼 있다. 52: int pageGroupCount = count/(pageSize*pageGroupSize)+( count % (pageSize*pageGroupSize) == 0 ? 0 : 1); 53://페이지 그룹 번호 54://ex) pageGroupSize가 3일 경우 '[1][2][3]'의 페이지그룹번호는 1 이고 '[2][3][4]'의 페이지그룹번호는 2 이다. 55: int numPageGroup = (int) Math.ceil((double)currentPage/pageGroupSize);
댓글 영역