Web/JSP_SERVLET

페이징 , paging 처리 jsp 코드

벨포트조던 2016. 1. 26.
반응형

-----------------  paging 을 포함할 파일   ---------------


int curPage = request.getParameter("curPage") == null ? 1 : Integer.parseInt(request.getParameter("curPage"));

int totalRecord = 10;//총 레코드수 의미없는 값이지만, db에서 토탈 레코드를 같이 뽑아서 저장한다. db에서 토탈 레코드 저장!!!!

int numPerPage = 100; // 페이지당 레코드수

int totalPage = 0;//총 페이지수 .. 선언만 하고 paging 에서 처리한다.

int rs_rows                 = 0; // 페이지 시작 번호 선언 



rs_rows = rs_rows + (curPage-1)*numPerPage; // 이렇게 사용한다. ,rs_rows 는 각 페이지의 컬럼의 번호이다. numperpage를 곱해주는 것은 각페이지의 시작 숫자를 뜻한다. ex 100, 101 , 102 , 103    ...   ,   200 , 201 , 202 , 203  ... 



<input type="hidden" id="curPage" name="curPage" value="<%=curPage%>"  />

// 기본적으로 form 형식으로 파라미터 전달하기 때문에 form 이 형성 되어야한다. 


totalRecord 를 입력받아와야 페이징에서 알아서 처리해준다.  

totalRecord = rs.getInt("totalRecord");



$(".pageList").click(function(){

var url = $(this).attr("url");  // 이건 안쓰는 거같다... 파악해보자

$("#curPage").val($(this).attr("value"));

$("#frm").attr({"action":"./stat100.jsp", "target":"_self"}).submit();

});




페이지 번호 부여할 위치에 


<%@include file ="../include/paging.jsp" %>


이 선언문을 써서 아래 코드를 불러온다.



------------------ paging.jsp  ---------------------



<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

<div class="paging" style="text-align:center; max-width:1200px;"> 

<%

     

  int block = 1; //페이지그룹번호

    int pagePerBlock = 10; //블록당  페이지 수

if(curPage%pagePerBlock==0){

    block = curPage/pagePerBlock;

    }else {

    block = curPage/pagePerBlock+1;

    }

    int firstPage = (block-1)*pagePerBlock+1;//블록에 속한 첫번째 페이지

    int lastPage = block *pagePerBlock; //블록에 속한 마지막 페이지

if(totalRecord!=0){

    if(totalRecord%numPerPage==0){

    totalPage = totalRecord/numPerPage;

    }else{

    totalPage = totalRecord/numPerPage+1;

    }

    }

int prevPage = 0;

int totalBlock = 0;//총 블록수

if(totalPage>0){

    if(totalPage%pagePerBlock==0){

    totalBlock = totalPage/pagePerBlock;

    } else {

    totalBlock = totalPage/pagePerBlock+1;

    }

    }

%>


<%

    if(true){

    prevPage = firstPage-1;

%>


<%

if(curPage>10) {

%>

<a href="javascript:void(0);" class="pre pageList" value="<%=prevPage%>"><img src="/images/btn/btn_Tprev.gif" alt="prev" /></a>

<%

} else {

%>

<a href="javascript:void(0);"><img src="/images/btn/btn_Tfirst.gif" class="pageList"  alt="first" value="1" /></a>

<a href="javascript:alert('더이상 페이지 목록이 없습니다.');"><img src="/images/btn/btn_Tprev.gif" alt="prev" /></a>

<%

}

%>


   

<%

}

    if (block >= totalBlock) {

      lastPage = totalPage;

    }

for (int i =firstPage; i <= lastPage; i++) {

if(i == curPage){

%>

  <span class="on"><a href="#"><%=i%></a></span>

<%

}

else{

%>

<span><a href="javascript:void(0);" class="pageList"  value="<%=i%>"><%=i%></a></span>

<%

}

}

  if(true){

  int nextPage =lastPage+1;

%>

<%

if(lastPage<totalPage) {

%>

<a href="javascript:void(0);" class="next pageList" value="<%=nextPage %>"><img src="/images/btn/btn_Tnext.gif" alt="next" /></a>

<%

} else {

%>

<a href="javascript:alert('더이상 페이지 목록이 없습니다.');"><img src="/images/btn/btn_Tnext.gif" alt="next" /></a>

<a href="javascript:void(0);"><img src="/images/btn/btn_Tlast.gif" alt="last" class="pageList"  value="<%= totalPage %>" /></a>

<%

}

%>

<%

}

%>

</div>


반응형

댓글