페이지 개수 출력하기
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.text.SimpleDateFormat"%>
<%@ page import="java.util.Date" %>
<%@ include file="ssi.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title> [guestList.jsp] </title>
<style type="text/css">
#pline{ margin-top: 35px; }
*{ font-size: 30pt; }
a{ font-size: 32pt; color:blue; text-decoration:none; }
a:hover{ font-size:36pt; color:green; text-decoration:none; }
</style>
<script type="text/javascript">
</script>
</head>
<body>
<%
///////////////////////////////////////////////////
msg="select count(*) as cnt from guest " ;
ST=CN.createStatement();
RS=ST.executeQuery(msg);
RS.next(); //if, while 없이 이동
Gtotal = RS.getInt("cnt"); //Gtotal = 316기억
//2020-07-28-목요일 페이징,검색,댓글
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dt = new Date( );
//제목옆에 60분=1시간전에 올라온 글에 대해서 new깃발이나 red색표시
String pnum; //<a href="guestList.jsp?pageNum=13"> [13] </a>
int pageNUM, pagecount;
int start, end;
int startpage, endpage ;
int tmp;
String sqry=" ";
String skey="검색필드", sval="검색키워드" ;
String returnpage="";
pnum = request.getParameter("pageNum"); //[13]클릭하면 문자로 13로 기억
if( pnum==null || pnum==""){ pnum="1"; }
pageNUM = Integer.parseInt(pnum); //[13]클릭하면 숫자로 13로 기억
System.out.println("클릭한 페이지 = " + pageNUM);
start = (pageNUM-1)*10+1 ; //[13]클릭 시작행 121
end = (pageNUM*10) ; //[13]클릭 끝행 130
//[이전] [11] ~[13]클릭~~ [20][다음]
tmp = (pageNUM-1)%10 ; //13-1%10 결과은 2
startpage = pageNUM-tmp ; //11
endpage = startpage+9 ; //20
///////////////////////////////////////////////////////////////
String a="select * from ( ";
String b=" select rownum rn,sabun,name,title,wdate,pay,hit,email from guest ";
String c=") where rn between " + start + " and " + end ;
System.out.println(c);
msg = a+b+c ;
ST=CN.createStatement();
RS=ST.executeQuery(msg);
%>
<p id="pline">
<table width="1200" border="1" cellspacing="0">
<tr align="right">
<td colspan="7">총레코드갯수: <%=Gtotal %> </td>
</tr>
<tr bgcolor="yellow">
<td>행번호</td> <td>사번</td> <td>이름</td>
<td>제목</td> <td>날짜</td> <td>조회수</td> <td>삭제</td>
</tr>
<%
while(RS.next()==true) {
Gsabun = RS.getInt("sabun");
Gtitle = RS.getString("title");
%>
<tr onmouseover="style.backgroundColor='rgb(0,200,200)'"
onmouseout="style.backgroundColor=''">
<td> <%= RS.getInt("rn") %> </td>
<td> <%= Gsabun %> </td>
<td> <%= RS.getString("name") %> </td>
<td> <a href="guestDetail.jsp?idx=<%=Gsabun%>"> <%= Gtitle %> </a> </td>
<td> <%= RS.getDate("wdate") %> </td>
<td> <%= RS.getInt("hit") %> </td>
<td align="center">
<input type="button" onclick="location.href='guestDelete.jsp?idx=<%=Gsabun%>' " value="삭제">
</td>
</tr>
<% } %>
<tr>
<td colspan="7" align="center">
<%
for(int i=1;i<11; i++){
out.println("<a href=guestList.jsp?pageNum="+i+">["+i+"]</a>");
}
%>
</td>
</tr>
</table>
<br>
<a href="guestWrite.jsp">[등록]</a>
<a href="index.jsp">[index]</a>
<a href="login.jsp">[로그인]</a>
<a href="guestList.jsp">[전체출력]</a>
<p><br>
</body>
</html>
페이지 수를 나열하는 방법
페이지를 i를 이용해서 출력을 해준다.
사용자가 누른 쪽 수가 pageNum 에 담겨서
guestList.jsp 로 전달이 된다 (나 자신에게 전달 가능)
request.getParameter( "pageNum" ); 으로 사용자가 누른 i값을 받아 온다.
문자열을 정수형으로 바꿔준다.
start에는 (pageNum-1)*10+1
( 1 - 1 ) * 10 + 1 = 1
( 2 - 1 ) * 10 + 1 = 11
( 14 - 1 ) * 10 + 1 = 131
( 25 - 1 ) * 10 + 1 = 241
( 75 - 1 ) * 10 + 1 = 741
( 81 - 1 ) * 10 + 1 = 801
이런 결과 값이 나온다 즉,
이 행의 시작 숫자를 정해준다
end = ( pageNum * 10 );
이건 공식 그대로 행의 끝 숫자를 나타낸다
여기서 tmp는 단지 페이지 수를 구하기 위한 수단으로 사용된다.
( 17-1 ) % 10 = 6
( 20-1 ) % 10 = 9
( 35-1 ) % 10 = 4
( 42-1 ) % 10 = 1
( 86-1 ) % 10 = 5
startpage 는 곧 pageNum - (( pageNum -1 ) % 10)
pageNum - ( )
17 - (( 17-1 ) % 10) => 17 - 6 = 11
20 - (( 20-1 ) % 10) => 20 - 9 = 11
35 - (( 35-1 ) % 10) => 35 - 4 = 31
42 - (( 42-1 ) % 10) => 42 - 1 = 41
86 - (( 86-1 ) % 10) => 86 - 5 = 81
eng page = startpage+9
11 + 9 = 20
21 + 9 = 30
31 + 9 = 40
41 + 9 = 50
51 + 9 = 60
61 + 9 = 70
이제 쿼리문을 작성해서 데이터를 가져오자.
데이터는 기니까 3번에 나눠쓰고 합칠 것,
WERER RN BETWEEN START AND END;
'개발중 > Web' 카테고리의 다른 글
Web05 page button color (0) | 2020.07.29 |
---|---|
Web06 page number (0) | 2020.07.29 |
Web02 회원정보 수정하기 (0) | 2020.07.28 |
Web02 회원정보 삭제하기 (0) | 2020.07.28 |
Web02 회원정보 불러오기(클릭) (0) | 2020.07.28 |