그럼.. 실제로 보여주기 로직에
해당하는 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(" ");} %> <%=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(" ");}
%>
위와 같이 쓸수도 있습니다.
페이징 구현은 공지사항에 적용되었던 방법과 똑 같이 외부 JSP 파일을 이용하였습니다.