게시판 하단에 페이지 넘기기 부분.
주석 참고.
public class PagingHandle {
private int p_group;//화면에 보이는 페이지의 그룹
/**
* @param page_url
* @param total_page
* @param page_size
* @param page_num
* @return
*/
public String indexPageList(String page_url, String total_page, String page_size, int page_num ){
String reIndexList="";//반환되는 페이징
int totalRow = Integer.parseInt(total_page);//전체 글의 수
int pageSize = Integer.parseInt(page_size);//한 페이지에 보여질 글의 수
int pageNum = page_num;//페이지 번호
/*시작 페이지 번호(보여지는 페이지의 번호) 구하기
* 보고 있는 페이지가 페이지 그룹의 마지막 페이지면(pageNum==p_group) 다음 페이지를시작 페이지로 설정 */
int startPage = ((((pageNum%p_group)==0)?pageNum-1:pageNum)/p_group)*p_group+1;
/*전체 페이지 번호 구하기
*전체 글의 수를 페이지당 보여질 글의 수로 나누면 총 페이지가 나온다. 글 수가 많으면 1페이지 추가 */
int totalPage = (totalRow/pageSize)+(((totalRow%pageSize)==0)?0:1);
/*마지막 페이지 번호 구하기
*전체 페이지 번호에서 보여지는 페이지 번호를 제외한 나머지 페이지와 페이지그룹을 비교해서 결정 */
int endPage = ((totalPage-startPage)<p_group)?totalPage:p_group;
//1번 페이지로 가기
reIndexList +="<a href='"+page_url+"&pageNum=1'>[처음]</a> ";
//현재 페이지가 페이지 그룹보다 클 경우 이전 그룹으로 가기
if(pageNum>p_group){
reIndexList +="<a href='"+page_url+"&pageNum="+(startPage-1)+"'>[이전]</a> ";
}//if
//페이지 그룹 안에 있는 페이지 번호 설정하기
while(startPage<=endPage){
//현재 보고 있는 페이지
if(startPage==pageNum){
reIndexList+="<b>["+pageNum+"]</b> ";
}else{
reIndexList+="<a href='"+page_url+"&pageNum="+startPage+"'>["+startPage+"]</a> ";
}//else
startPage++;
}//while
//뒤에 페이지가 더 있으면 다음 페이지 그룹으로 가기
if(endPage!=totalPage){
reIndexList +="<a href='"+page_url+"&pageNum="+(endPage+1)+"'>[다음]</a> ";
}//if
//마지막 페이지로 가기
reIndexList +="<a href='"+page_url+"&pageNum="+totalPage+"'>[끝]</a>";
return reIndexList;
}//indexPageList
}//class
private int p_group;//화면에 보이는 페이지의 그룹
/**
* @param page_url
* @param total_page
* @param page_size
* @param page_num
* @return
*/
public String indexPageList(String page_url, String total_page, String page_size, int page_num ){
String reIndexList="";//반환되는 페이징
int totalRow = Integer.parseInt(total_page);//전체 글의 수
int pageSize = Integer.parseInt(page_size);//한 페이지에 보여질 글의 수
int pageNum = page_num;//페이지 번호
/*시작 페이지 번호(보여지는 페이지의 번호) 구하기
* 보고 있는 페이지가 페이지 그룹의 마지막 페이지면(pageNum==p_group) 다음 페이지를시작 페이지로 설정 */
int startPage = ((((pageNum%p_group)==0)?pageNum-1:pageNum)/p_group)*p_group+1;
/*전체 페이지 번호 구하기
*전체 글의 수를 페이지당 보여질 글의 수로 나누면 총 페이지가 나온다. 글 수가 많으면 1페이지 추가 */
int totalPage = (totalRow/pageSize)+(((totalRow%pageSize)==0)?0:1);
/*마지막 페이지 번호 구하기
*전체 페이지 번호에서 보여지는 페이지 번호를 제외한 나머지 페이지와 페이지그룹을 비교해서 결정 */
int endPage = ((totalPage-startPage)<p_group)?totalPage:p_group;
//1번 페이지로 가기
reIndexList +="<a href='"+page_url+"&pageNum=1'>[처음]</a> ";
//현재 페이지가 페이지 그룹보다 클 경우 이전 그룹으로 가기
if(pageNum>p_group){
reIndexList +="<a href='"+page_url+"&pageNum="+(startPage-1)+"'>[이전]</a> ";
}//if
//페이지 그룹 안에 있는 페이지 번호 설정하기
while(startPage<=endPage){
//현재 보고 있는 페이지
if(startPage==pageNum){
reIndexList+="<b>["+pageNum+"]</b> ";
}else{
reIndexList+="<a href='"+page_url+"&pageNum="+startPage+"'>["+startPage+"]</a> ";
}//else
startPage++;
}//while
//뒤에 페이지가 더 있으면 다음 페이지 그룹으로 가기
if(endPage!=totalPage){
reIndexList +="<a href='"+page_url+"&pageNum="+(endPage+1)+"'>[다음]</a> ";
}//if
//마지막 페이지로 가기
reIndexList +="<a href='"+page_url+"&pageNum="+totalPage+"'>[끝]</a>";
return reIndexList;
}//indexPageList
}//class