그럼.. 실제로 보여주기 로직에 해당하는 JSP 페이지를 만들어 보도록 하겠습니다.

list.jsp

<%@ page contentType="text/html; charset=euc-kr" %>

<%@ taglib uri="taglib" prefix="tl"%>

<%

String PAGE = null;

String field = null;

String key = null;

int current_page;

 

PAGE = request.getParameter("PAGE");

field = request.getParameter("FIELD");

key = request.getParameter("KEY");

 

if(PAGE == null){

  current_page = 1;

}else{

  current_page = Integer.parseInt(PAGE);

}

 

if(field != null){

  //key = new String(key.getBytes("8859_1"),"euc-kr");

}else{

  field = "";

  key = "";

}

%>

<jsp:useBean id="Board" class="board.Board" scope="request"/>

<jsp:setProperty name="Board" property="page" value="<%=current_page%>"/>

<jsp:setProperty name="Board" property="list_cnt" value="17"/>

<jsp:setProperty name="Board" property="field" value="<%=field%>"/>

<jsp:setProperty name="Board" property="key" value="<%=key%>"/>

<%

int total = Board.getTotal();

int total_page = Board.getTotalPage();

key = new String(key.getBytes("8859_1"),"euc-kr");

%>

 

위의 소스는 파라미터값으로 넘어오는 값들을 처리한후 빈즈에 셋팅하고 있습니다.

주의깊게 보셔야 할 부분은 볼드의 파란색으로 표시된 부분인데 앞서 말씀드린 것 처럼 데이터 가져오기 조건에 필요한 각 변수들을 설정하고 있습니다.

특히 페이지당 목록의 개수는 사용자가 임의로 설정가능하도록 했습니다.

여기서는 17 개로 되어 있군요..

계속해서 다음을 살펴보도록 하겠습니다.

list.jsp

<tl:iterate name="list" vector="<%=Board.getList()%>" type="board.BoardRec">

<TR>

  <TD align=center><jsp:getProperty name="list" property="num"/></TD>

  <TD>                                         

<%

String re = "";

if(list.depth >= 1){re = "<img src=img/icon_re.gif>";}

for(int i=0;i<=list.depth;i++){out.println("&nbsp;&nbsp;");}

%>

<%=re%>

<a href="view.jsp?PAGE=<%=current_page%>&KEY=<%=key%>&FIELD=<%=field%>&NO=<jsp:getProperty name="list" property="no"/>">

<jsp:getProperty name="list" property="subject"/>

</a>

</TD>

<TD align=center>

<a href="mailto:<jsp:getProperty name="list" property="email"/>">

<jsp:getProperty name="list" property="name"/>

</a>

 </TD>

   <TD align=center><jsp:getProperty name="list" property="regi_date"/></TD>

   <TD align=center><jsp:getProperty name="list" property="cnt"/></TD>

 </TR>

    <tr height=1 align=center><td colspan=5 background="img/back_verdot2.gif"></td></tr>

 </tl:iterate>

위의 부분은 벡터의 내용을 태그를 이용하여 반복적으로 처리하도록 하고 있습니다.

이 태그는 벡터를 그 소스값으로 받아오고 getProperty 를 이용하여 벡터내의 각 필드 값들을 출력합니다.

흥미로운 부분은 Iterate 태그가 list로 선언되어 있을 때 스크립틀릿으로도 제어가능하다는 것이죠..

<%

String re = "";

if(list.depth >= 1){re = "<img src=img/icon_re.gif>";}

for(int i=0;i<= list.depth;i++){out.println("&nbsp;&nbsp;");}

%>

위와 같이 쓸수도 있습니다.

페이징 구현은 공지사항에 적용되었던 방법과 똑 같이 외부 JSP 파일을 이용하였습니다.