2013년 10월 23일 수요일

[JAVA, JSP JSTL]JSTL을 이용한 페이지 나누기.

[JAVA, JSP JSTL]JSTL을 이용한 페이지 나누기. 

페이지를 나누기 위한 코딩을 해보신 분들은 아시겠지만 

안에서 돌아가는 로직이 꽤 복잡하고 

jsp의 문법의 한계로 인해 구현하기 적잖은 노력이 들어가게 됩니다. 

jstl을 이용해서 페이징을 구현해 봤는데 

아래의 리스트 구현하기처럼 가독성 증가와 노동력 감소의 

효과를 얻을수 있었습니다. 




////////////board_ludi( List , Update , Delete , Insert의 준말입니다)////// 
<%@ page contentType="text/html;charset=EUC-KR" %> 
<%@ page import="java.util.*" %> 
<%@ page import="webmaster.mboard.boardmanager.model.*"%> 
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%> 
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%> 
<%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %> 
<% 
        String current_page = request.getParameter( "current_page" ); 
        BoardDAO boardDAO = new BoardDAO(); 
        int board_count = boardDAO.getBoardCount(); 
        int current_pageInt = Integer.parseInt( current_page ); 
        int page_count = ( board_count / 10 ) + 1; 
        int first_page = ( ( ( current_pageInt - 1) / 10 ) * 10 )+ 1; 

%> 

<!--########## 페이징에 필요한 값 받기  ############ -->  

<c_rt:set var="board_count"  value="<%=new Integer(board_count)%>"/> 
<c_rt:set var="current_page" value="<%=new Integer(current_page)%>"/> 
<c_rt:set var="page_count"  value="<%=new Integer(page_count)%>"/> 
<c_rt:set var="first_page"  value="<%=new Integer(first_page)%>"/> 


<!--########## 페이지 카운터 출력 ############ -->  
<table> 
                              <tr> 
                                <td> 

<!--########## 이전 페이지 링크 출력 ############ -->  
                                  <c:if test="${ first_page > 10 }"> 
                                    <a href="/yfarm/webmaster/AdminBoardList.do?current_page=<c:out value="${ first_page - 1 }"/>">[ 이전 ]</a> 
                                  </c:if> 

<!--########## 페이지 카운터 출력 ############ -->  
                                  <c:forEach var="counter" begin="${first_page}" end="${first_page+9}"> 
                                    <c:if test="${ counter <= page_count }"> 
                                      <c:choose> 
                                        <c:when test="${ counter == current_page }"> 
                                          <a href="/yfarm/webmaster/AdminBoardList.do?current_page=<c:out value="${counter}"/>"><span class="point"><c:out value="${counter}"/></span></a> 
                                        </c:when> 
                                        <c:when test="${ counter != current_page }"> 
                                          <a href="/yfarm/webmaster/AdminBoardList.do?current_page=<c:out value="${counter}"/>">[ <c:out value="${counter}"/> ]</a> 
                                        </c:when> 
                                      </c:choose> 
                                    </c:if> 
                                  </c:forEach> 

<!--########## 다음 페이지 링크 출력 ############ -->  
                                  <c:if test="${ first_page+9 < page_count  }"> 
                                    <a href="/yfarm/webmaster/AdminBoardList.do?current_page=<c:out value="${ first_page + 10 }"/>">[ 다음 ]</a> 
                                  </c:if> 
                                </td> 
                              </tr> 
                            </table> 

오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  



[기타 다른 강좌는 아래 해당 카테고리를 클릭해주세요]

댓글 없음:

댓글 쓰기