본문 바로가기
카테고리 없음

list.jsp

by 인디코더 2018. 10. 2.

파일 명 : 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){%>
                [<%=%>]<%else{%>
                <a href="list.jsp?pageNum=<%=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


반응형