2009년 8월 25일 화요일

JSP 게시판 글 리스트

<%@ page contentType="text/html; charset=EUC-KR" %>
<%@ page import="member.*,java.util.*"%>
<jsp:useBean id="Bo" class="member.BoMgr"/>


<%
  request.setCharacterEncoding("euc-kr");
%>

 

기본적인 셋팅과 자료를 가져와 리스트 업 시킬 클래스파일인 BoMgr 을 아이디 설정하자.

 

 

변수들을 셋팅 하자. 

 

<%
   int totalRecord=0;                 // 전체 레코드 수
   int numPerPage=10;             // 페이지 당 레코드 수
   int pagePerBlock=10;           // 블록 당 레코드 수
   int totalPage=0;                   // 전체 페이지 수
   int totalBlock=0;                  //  전체 블록수
   int nowPage=0;                  //  현재 페이지
   int nowBlock=0;                 //  현재 블록
   int beginPerPage=0;           //  페이지의 시작번호
 
   Vector boList;              // Select 로 검색한 자료들을 담아올 벡터형 변수

%>

 

저 많은 변수들이 말해주듯 게시판 구성은 복잡하다.

 

 

우선 단 한 개의 레코드라도 리스트에 불러오는 것이 목적이다.

간단하게 Title 레코드만 불러와서 테스트 후 각자 추가하도록 하자


<body >


   <table>
    <tr>
     <td width=50>번 호</td>
     <td width=350>제 목</td>
    </tr>
    <tr>
     <td></td>
     <td><%=title%></td>
    </tr>

  </td>

</table>

 

너무나도 간단한 리스트가 만들어졌는데 이상태에선 에러가 난다.

 

<%=tilte%> 명령어를 만족시키기 위해

select 시킨 MySql 자료를 불러오자

아마도 빈즈에 담겨있겠지?

 

 

     <td width=350>제 목</td>
    </tr>

 

<%

      BoBean ListBo = (BoBean)boList.elementAt(i);

      String title = ListBo.getTitle();
%>


    <tr>
     <td></td>
     <td><%=title%></td>

 

사이에다가  추가해주자.

import 했던 빈즈의 구조를 가지는 변수 ListBo 에다가

백터형 boList 변수의 내용을 대입한다.

boList 안에는 (BoBean) 의 내용이 담겨져 있다

 

아시다시피 빈즈의 속에는 각각의 컬럼들이 있다.

여러 자료를 한번에 담기 위해 백터형 변수를 쓰고 한번에 뽑아내기 위해

elementAt(i) 를 통하여 백터변수에 접근한다.

 

 

입력창을 통하여 12개의 글을 입력해 놓았다.

모두 불러내어 리스트 업 하기 위해서 FOR 문을 사용하자.

 

<%
     for (int i=beginPerPage; i<(beginPerPage+numPerPage); i++){
         if (i==totalRecord){break;}

        BoBean ListBo = (BoBean)boList.elementAt(i);

        String title = ListBo.getTitle();
%>

 

 

 

For 문에 나온 세가지 변수의 값을 구해야 한다.

 

beginPerPage  =  nowPage * numPerPage;

 

페이지 넘버링   1 2 3 4 5 6 7 8 9 10  만들때

2번을 누를경우 nowPage 로 1을 ++ 하여 넘긴다.

이러면 첫페이지는 0 이니까 0 ~9 까지 다음은 1 이니까 10~ 19 까지 열개씩 나열한다.

 

numPerPage    = 페이지당 레코드 개수로 이미 10 개로 설정했다.

 

totalRecord      = 총 레코드 수 는 select 하는 메소드를 반환하여 값을 얻는다.

 

                       boList = Bo.getBoList();

                       totalRecord = boList.size();

 

          백터형 변수 = Bo(BoMgr.class) 속의 메소드 BoList 의 결과를 담고

          .size() 로 갯수를 추출해서 토탈레코드에 담자

          12 개 작성했다면 Select 가 12번 실행되었으니 12가 추출된다.

댓글 없음:

댓글 쓰기