ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 학원 day48. 게시판 만들기 실습, 페이지 네비게이션
    기록 2022. 11. 12. 21:23

    페이지 내비게이션 출력하기

     

    1. 한 화면에 표시할 페이지번호 개수 결정하기

    int pages = 5;

     

    2. 총 페이지블록 개수를 계산하기 

    int totalPageBlocks = (int) Math.ceil ((double) totalPages/pages);

    // (int) Math.ceil((double) 8/5) = 2

     

    3. 현재 페이지블록을 계산하기

    int currentPageBlock = (int) Math.ceil((double) currentPage/pages);

    // (int) Math.ceil((double) 7/5) = 2

     

    4. 현재 페이지블록에 맞는 시작페이지번호와 끝페이지번호를 계산하기

    int beginPage = (currentPageBlock -1)*pages + 1;

    int endPage = currentPageBlock*pages;

    if (currentPageBlock == totalPageBlocks) {

    endPage = totalPages;

    }

     

     

    <%
        // 페이지 내비게이션 표시
    
        // 1. 한 화면에 표시할 페이지번호 갯수를 결정한다.
        int pages = 5;
    
        // 2. 전체 책 갯수를 조회한다.
        int totalRows = bookDao.getTotalRows();
    
        // 3. 전체 페이지 갯수를 계산한다.
        int totalPages = (int) Math.ceil((double) totalRows/rows);
    
        // 4. 전체 페이지 블록 갯수를 계산한다.
        int totalPageBlocks = (int) Math.ceil((double) totalPages/pages);
    
        // 5. 현재 페이지가 속한 페이지 블록을 계산하기
        int currentPageBlock = (int) Math.ceil((double) currentPage/pages);
    
        // 6. 현재 페이지블록의 시작페이지번호와 끝 페이지번호를 계산하기
        int beginPage = (currentPageBlock - 1)*pages + 1;
        int endPage = currentPageBlock == totalPageBlocks ? totalPages : currentPageBlock*pages;
    %>
    
    	<div aria-label="navigation">
       	  <ul class="pagination justify-content-center">
            <li class="page-item <%=currentPage <= 1 ? "disabled" : "" %>">
                <a class="page-link" href="list.jsp?page=<%=currentPage - 1 %>">이전</a>
            </li>
    <%
        for (int number = beginPage; number <= endPage; number++) {
    %>
            <li class="page-item <%=currentPage == number ? "active" : "" %>">
                <a class="page-link" href="list.jsp?page=<%=number %>"><%=number %></a>
            </li>
    <%
        }
    %>
            <li class="page-item <%=currentPage >= totalPages ? "disabled" : "" %> ">
                <a class="page-link"href="list.jsp?page=<%=currentPage + 1 %>">다음</a>
            </li>
        </ul>
    </div>

     

     

     


    <  게시판 만들기  >

     

    테이블 생성 및 시퀀스 생성

     

    CREATE TABLE SAMPLE_BOARDS (
        BOARD_NO NUMBER(5) CONSTRAINT BOARD_NO_PK PRIMARY KEY,
        BOARD_TITLE VARCHAR2(255) NOT NULL,
        BOARD_WRITER VARCHAR2(100) NOT NULL,
        BOARD_READ_COUNT NUMBER(5) DEFAULT 0,
        BOARD_REVIEW_COUNT NUMBER(5) DEFAULT 0,
        BOARD_CONTENT VARCHAR2(200) NOT NULL,
        BOARD_DELETED CHAR(1) DEFAULT 'N',
        BOARD_CREATED_DATE DATE DEFAULT SYSDATE,
        BOARD_UPDATED_DATE DATE DEFAULT SYSDATE
    );

    CREATE TABLE SAMPLE_BOARD_REVIEWS (
        REVIEW_NO NUMBER(5) CONSTRAINT BOARD_REVIEW_NO_PK PRIMARY KEY,
        REVIEW_WRITER VARCHAR2(100) NOT NULL,
        REVIEW_CONTENT VARCHAR2(1000) NOT NULL,
        REVIEW_CREATED_DATE DATE DEFAULT SYSDATE,
        BOARD_NO NUMBER(5) CONSTRAINT REVIEW_BOARD_NO_FK REFERENCES SAMPLE_BOARDS (BOARD_NO)
    );

     

    CREATE SEQUENCE SAMPLE_BOARDS_SEQ START WITH 10000 NOCACHE;
    CREATE SEQUENCE SAMPLE_REVIEWS_SEQ START WITH 10000 NOCACHE;

     

     

    환경 세팅하기

     

    1. 라이브러리 파일을 src/main/webapp/WEB-INF/lib 폴더에 추가한다.
    ojdbc11.jar
    ibatis-2.3.4.726.jar

    2. ibatis 환경설정
    src/main/resources "소스폴더"를 추가한다.
    src/main/resources "소스폴더"에 META-INF/ibatis/mappers "폴더"를 추가한다.

    src/main/resources/META-INF/ibatis/mappers 폴더에 매퍼파일을 추가한다.
    boards.xml, reviews.xml
    src/main/resources/META-INF/ibatis 폴더에 ibatis-config.xml 파일을 추가한다.
    ibatis-config.xml 파일에 boards.xml과 reviews.xml 파일을 등록한다.

    3. 패키지 생성 및 유틸리티 클래스 추가
    com.sample.util 패키지를 추가한다.
    com.sample.util 패키지에 SqlMapper.java와 StringUtils.java를 추가한다.
    com.sample.vo 패키지를 추가한다.
    Board.java와 Review.java를 추가한다.
    com.sample.dao 패키지를 추가한다.
    BoardDao.java와 ReviewDao.java를 추가한다.

    4. JSP 구현하기
    src/main/webapp 폴더에 jsp 파일을 추가한다.
    home.jsp
    list.jsp
    form.jsp
    register.jsp 
    detail.jsp, [리뷰 : addReview.jsp, deleteReview.jsp]
    delete.jsp
    modifyform.jsp 
    update.jsp

     

    댓글

Designed by Tistory.