파일 명 : list.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | <%@page import="java.util.List"%> <%@page import="model.BoardDao1"%> <%@page import="model.Board"%> <%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <% /* 일단 외형을 만들고 나면, 내가 다루지 않은게 보인다. 바로 이전, 다음, 페이지 번호인데... 다른 것은 다 Board.java에서 가져오면 되는 개체들인데 페이지 번호나 이전이나 다음 만큼은 가져 올게 없다. 그러한 상태에서 이전이나 다음은 pageNum을 잘 사용하면 될 것 같다. */ int pageNum = 1; //그래서 pageNum을 만들었다. /* 여기서 알아두어야 할것이 각 변수나 개체들을 어떻게 쓰일 것인지를 명확하게 하는 것이다. */ try{ pageNum =Integer.parseInt(request.getParameter("pageNum")); }catch(NumberFormatException e){} //여기서는 그냥 pageNum을 웹에서 요청을 합니다. 서버에... // 사실 여기가 의문이긴 합니다만... //그렇다면 한 페이지에는 몇가지의 게시물이 올라와야 겠지요 .. 그렇다면 여기에 제한을 둡니다. int limit = 10; //그리고 객체화 한것을 사용하려면 불러와야 겠죠 , Board DTO들을 소환해 보겠습니다. Board board = new Board(); /* 사실 잘 이해는 안가지만, 게시물을 셀수 있는 또다른 변수를 만듭니다. limit은 제한을 하는 수이고 boardcount라고 해서 게시물의 수를 체크하는 수를 만듭니다. [그런데 사실 왜 만드는지 모르겠습니다. num으로 하면 되지 않나요?] 그런데 이 수를 어떻게 만드느냐? 함수를 만들어야 겠지요 . 하지만 객체지향 답게 이것은 BoardDao1에서 만들어 보겠습니다. boardCount()라는 메서드로 말이죠. */ BoardDao1 dao1 = new BoardDao1(); int boardcount = dao1.boardcount(); // 이 친구는 board물 수를 세어준다. // preparedStatement에서 // count(*)를 써준다. List<Board> list = dao1.list(pageNum,limit); // 얘가 뭐하는 애냐 ㅋㅋㅋㅋ int maxpage = (int)((double)boardcount/limit + 0.95); int startpage = ((int)(pageNum/10.0 + 0.9)-1) * 10 +1; int endpage = startpage + 9; if(endpage > maxpage) endpage = maxpage; %> <!DOCTYPE html> <html> <head> <meta charset="EUC-KR"> <title>게시판 목록</title> </head> <body> <table border="1" style="border-collapse: collapse;"> <caption>[Model 1] board list</caption> <%if(boardcount == 0){ %> <tr><td colspan="5" align="center">등록된 게시글이 없습니다.</td></tr> <%} else { %> <tr><td colspan="5" style="text-align: right;">글 갯수 : <%=boardcount %></td></tr> <tr align="center" valign ="middle"> <th width="5%">번호</th> <th width="50%">제목</th> <th width="15%">작성자</th> <th width="20">날짜</th> <th width="5%">조회수</th></tr> <%for(Board b:list){ %> <tr align="center" valign="middle"> <td><%=b.getNum()%></td> <td><a href="info.jsp?num=<%=b.getNum()%>"><%=b.getSubject() %></a></td> <td><%=b.getName()%></td> <td><%=b.getRegdate()%></td> <td><%=b.getReadcnt()%></td></tr> <%} %> <%-- 페이지를 출력해요 --%> <tr><td colspan="5" align="center"> <%if(pageNum<=1) {%>[이전]<%}else{ %> <a href="list.jsp?pageNum=<%=pageNum -1 %>">[이전]</a><%} %> <%for(int a=startpage; a<=endpage; a++) {%> <%if(a==pageNum){%> [<%=a %>]<%} else{%> <a href="list.jsp?pageNum=<%=a %>">[<%=a %>]</a> <%}} %> <%if(pageNum >= maxpage) { %> [다음]<%}else{ %> <a href="list.jsp?pageNum=< %=pageNum+1 %>">[다음]</a><%} %></td> </tr> <%} //등록된 게시글이 있는 경우%> <tr><td colspan="5" align="right"> <a href = "writeForm.jsp">[글쓰기]</a></td></tr> </table> </body> </html> | cs |
반응형