<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%>
<%!
public Integer toInt(String x){
int a = 0;
try{
a = Integer.parseInt(x);
}catch(Exception e){}
return a;
}
%>
<%
int pageno = toInt(request.getParameter("pageno"));
if(pageno<1){//현재 페이지
pageno = 1;
}
int total_record = 754;    //총 레코드 수
int page_per_record_cnt = 10;  //페이지 당 레코드 수
int group_per_page_cnt =5;     //페이지 당 보여줄 번호 수[1],[2],[3],[4],[5]
//      [6],[7],[8],[9],[10]

int record_end_no = pageno*page_per_record_cnt;
int record_start_no = record_end_no-(page_per_record_cnt-1);
if(record_end_no>total_record){
record_end_no = total_record;
}
   
   
int total_page = total_record / page_per_record_cnt + (total_record % page_per_record_cnt>0 ? 1 : 0);
if(pageno>total_page){
pageno = total_page;
}


//  현재 페이지(정수) / 한페이지 당 보여줄 페지 번호 수(정수) + (그룹 번호는 현제 페이지(정수) % 한페이지 당 보여줄 페지 번호 수(정수)>0 ? 1 : 0)
int group_no = pageno/group_per_page_cnt+( pageno%group_per_page_cnt>0 ? 1:0);
// 현재 그룹번호 = 현재페이지 / 페이지당 보여줄 번호수 (현재 페이지 % 페이지당 보여줄 번호 수 >0 ? 1:0)
// ex)  14 = 13(몫) =  (66 / 5) 1 (1(나머지) =66 % 5)   
int page_eno = group_no*group_per_page_cnt;
// 현재 그룹 끝 번호 = 현재 그룹번호 * 페이지당 보여줄 번호 
// ex)  70 = 14 * 5
int page_sno = page_eno-(group_per_page_cnt-1);
//  현재 그룹 시작 번호 = 현재 그룹 끝 번호 - (페이지당 보여줄 번호 수 -1)
// ex)  66 = 70 -  4 (5 -1)
if(page_eno>total_page){
//    현재 그룹 끝 번호가 전체페이지 수 보다 클 경우
page_eno=total_page;
//    현재 그룹 끝 번호와 = 전체페이지 수를 같게
}
int prev_pageno = page_sno-group_per_page_cnt;  // <<  *[이전]* [21],[22],[23]... [30] [다음]  >>
// 이전 페이지 번호 = 현재 그룹 시작 번호 - 페이지당 보여줄 번호수
// ex) 46 = 51 - 5
int next_pageno = page_sno+group_per_page_cnt; // <<  [이전] [21],[22],[23]... [30] *[다음]*  >>
// 다음 페이지 번호 = 현재 그룹 시작 번호 + 페이지당 보여줄 번호수
// ex) 56 = 51 - 5
if(prev_pageno<1){
// 이전 페이지 번호가 1보다 작을 경우
prev_pageno=1;
// 이전 페이지를 1로
}
if(next_pageno>total_page){
// 다음 페이지보다 전체페이지 수보가 클경우
next_pageno=total_page/group_per_page_cnt*group_per_page_cnt+1;
// next_pageno=total_page
// 다음 페이지 = 전체페이지수 / 페이지당 보여줄 번호수 * 페이지당 보여줄 번호수 + 1 
// ex)    =  76 / 5 * 5 + 1 ???????? 
}
// [1][2][3].[10]
// [11][12]
%>
현재 페이지   (pageno)   : <%=pageno%><br />
전체 데이터 수   (total_record) : <%=total_record %><br />
한페이지 당 레코드 수   (page_per_record_cnt) : <%=page_per_record_cnt %><br />
한페이지 당 보여줄 페지 번호 수   (group_per_page_cnt) : <%=group_per_page_cnt %><br />

<hr />
레코드 시작 번호  (record_start_no) : <%=record_start_no%><br />
레코드 끝 번호    (record_end_no) : <%=record_end_no %><br />
전체페이지 수     (total_page)  : <%=total_page %><br />
<hr />
현재 그룹번호 [1] (group_no):  <%=group_no %><br />
현재 그룹 시작 번호(page_sno): <%= page_sno%><br />
현재 그룹 끝 번호  (page_eno): <%= page_eno%><br />
이전 페이지 번호   (prev_pageno) <%=prev_pageno%><br />
다음 페이지 번호   (next_pageno) <%=next_pageno%><br />
<hr />


<a href="pase.jsp?pageno=1">[맨앞으로]</a>
<a href="pase.jsp?pageno=<%=prev_pageno%>">[이전]</a> 
<%for(int i =page_sno;i<=page_eno;i++){%>
<a href="pase.jsp?pageno=<%=i %>">
<%if(pageno == i){ %>
[<%=i %>]
<%}else{ %>
<%=i %>
<%} %>
</a> 
<%-- 콤마  --%>
<%if(i<page_eno){ %>
,
<%} %>
<%} %>
 
<a href="pase.jsp?pageno=<%=next_pageno%>" >[다음]</a>
<a href="pase.jsp?pageno=<%=total_page %>">[맨뒤로]</a>

'JSP' 카테고리의 다른 글

Problems warning 를 제거 하자.  (1) 2012.10.23
html excel 추출 하기.& Jquery excel 추출 하기.  (0) 2012.06.16
정규표현식 공식 및 응용 .  (0) 2012.05.08
기본JDBC 만들기  (0) 2012.05.08
Tiles(레이아웃처리)  (0) 2012.05.08
Posted by 사라링
BLOG main image
.. by 사라링

카테고리

사라링님의 노트 (301)
JSP (31)
J-Query (41)
JAVA (24)
디자인패턴 (1)
스트러츠 (3)
안드로이드 (11)
오라클 (45)
우분투-오라클 (1)
이클립스메뉴얼 (6)
스프링3.0 (23)
자바스크립트 (10)
HTML5.0 (17)
정보처리기사 (1)
기타(컴퓨터 관련) (1)
문제점 해결 (3)
프로젝트 (2)
AJAX (4)
하이버네이트 (3)
트러스트폼 (11)
Jeus (2)
재무관리(회계) (5)
정규식 (5)
아이바티스 (8)
취미 (2)
소프트웨어 보안 관련모음 (0)
정보보안기사 (6)
C언어 베이직 및 프로그램 (3)
보안 관련 용어 정리 (2)
넥사크로 (6)
웹스퀘어_ (0)
Total :
Today : Yesterday :