<%@page import="model.BoardBean"%>
<%@page import="java.util.ArrayList"%>
<%@page import="model.BoardDAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
//๊ฒ์๊ธ ๋ณด๊ธฐ์ ์นด์ดํฐ๋ง์ ์ค์ ํ๊ธฐ ์ํ ๋ณ์๋ค์ ์ ์ธ
//ํ๋ฉด์ ๋ณด์ฌ์ง ๊ฒ์๊ธ์ ๊ฐ์๋ฅผ ์ง์
int pageSize=10;
//ํ์ฌ ์นด์ดํฐ๋ฅผ ํด๋ฆญํ ๋ฒํธ๊ฐ์ ์ฝ์ด์ด
String pageNum = request.getParameter("pageNum");
//๋ง์ฝ ์ฒ์ boardlist.jsp๋ฅผ ํด๋ฆญํ๊ฑฐ๋ ์์ , ์ญ์ ๋ฑ ๋ค๋ฅธ ๊ฒ์๊ธ์์ ์ด ํ์ด์ง๋ก ๋์ด์ค๋ฉด
//pageNum๊ฐ์ด ์๊ธฐ์ null์ฒ๋ฆฌ๋ฅผ ํด์ค
if(pageNum == null){
pageNum = "1";
}
int count = 0; //์ ์ฒด ๊ธ์ ๊ฐฏ์๋ฅผ ์ ์ฅํ๋ ๋ณ์
int number = 0; //ํ์ด์ง ๋๋ฒ๋ง ๋ณ์
//ํ์ฌ ๋ณด๊ณ ์ ํ๋ ํ์ด์ง ์ซ์๋ฅผ ์ ์ฅ
int currentPage = Integer.parseInt(pageNum);
//์ ์ฒด ๊ฒ์๊ธ์ ๋ด์ฉ์ jsp์ชฝ์ผ๋ก ๊ฐ์ ธ์์ผ ํจ
BoardDAO bdao = new BoardDAO();
//์ ์ฒด ๊ฒ์๊ธ์ ๊ฐฏ์๋ฅผ ์ฝ์ด๋๋ฆฌ๋ ๋ฉ์๋ ํธ์ถ
count = bdao.getAllCount();
////A
//ํ์ฌ ํ์ด์ง์ ๋ณด์ฌ์ค ์์ ๋ฒํธ๋ฅผ ์ค์ = ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถ๋ฌ์ฌ ์์๋ฒํธ
int startRow = (currentPage-1)*pageSize+1;
int endRow = currentPage * pageSize;
//์ต์ ๊ธ 10๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฒ์๊ธ์ ๋ฆฌํด ๋ฐ์์ฃผ๋ ๋ฉ์๋ ํธ์ถ
////B
ArrayList<BoardBean> al = bdao.getAllBoard(startRow, endRow);
//ํ
์ด๋ธ์ ํ์ํ ๋ฒํธ๋ฅผ ์ง์
number = count - (currentPage -1) * pageSize;
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<center>
<h2>์ ์ฒด ๊ฒ์๊ธ ๋ณด๊ธฐ</h2>
<table width="700" border="1" bgcolor="#7FE5FA">
<tr height="40">
<td align="right" colspan="5">
<input type="button" value="๊ธ์ฐ๊ธฐ" onclick="location.href='BoardWriteForm.jsp'">
</td>
</tr>
<tr height="40">
<td width="50" align="center">๋ฒํธ</td>
<td width="320" align="center">์ ๋ชฉ</td>
<td width="100" align="center">์์ฑ์</td>
<td width="150" align="center">์์ฑ์ผ</td>
<td width="80" align="center">์กฐํ์</td>
</tr>
<%
for(int i=0; i<al.size(); i++){
BoardBean bean = al.get(i); //๋ฆฌ์คํธ์ ์ ์ฅ๋์ด์๋ ๋น ํด๋์ค๋ฅผ ํ๋์ฉ ์ถ์ถ
%>
<tr height="40">
<td width="50" align="center"><%=number-- %></td>
<td width="320" align="left"><a href="BoardInfo.jsp?num=<%=bean.getNum() %>" style="text-decoration:none">
<%
if(bean.getRe_step()>1){
for(int j=0; j<(bean.getRe_step()-1)*5; j++){
%>
<%
}
}
%>
<%=bean.getSubject() %></a></td>
<td width="100" align="center"><%= bean.getWriter() %></td>
<td width="150" align="center"><%= bean.getReg_date() %></td>
<td width="80" align="center"><%= bean.getReadcount() %></td>
</tr>
<%
}
%>
</table>
<p>
<!-- ํ์ด์ง ์นด์ดํฐ๋ง ์์ค๋ฅผ ์์ฑ -->
<%
if(count>0){
//์นด์ดํฐ๋ง ์ซ์๋ฅผ ์ผ๋ง๊น์ง ๋ณด์ฌ์ค๊ฑด์ง ๊ฒฐ์
int pageCount = count / pageSize + (count%pageSize == 0 ? 0 : 1);
//์์ํ์ด์ง ์ซ์๋ฅผ ์ค์
int startPage = 1;
if(currentPage % 10 != 0){
startPage = (int)(currentPage/10)*10+1;
} else {
startPage = ((int)(currentPage/10)-1)*10+1;
}
int pageBlock = 10;//์นด์ดํฐ๋ง ์ฒ๋ฆฌ์ซ์
int endPage = startPage+pageBlock-1; //ํ๋ฉด์ ๋ณด์ฌ์ง ํ์ด์ง์ ๋ง์ง๋ง ์ซ์
if(endPage > pageCount) endPage = pageCount;
//์ด์ ์ด๋ผ๋ ๋งํฌ๋ฅผ ๋ง๋ค๊ฑด์ง ํ์
if(startPage > 10){
%>
<a href="BoardList.jsp?pageNum=<%=startPage-10%>">[์ด์ ]</a>
<%
}
//ํ์ด์ง ์ฒ๋ฆฌ
for(int i=startPage; i<=endPage; i++){
%>
<a href="BoardList.jsp?pageNum=<%=i%>">[<%=i %>]</a>
<%
}
//๋ค์์ด๋ผ๋ ๋งํฌ๋ฅผ ๋ง๋ค๊ฑด์ง ํ์
if(endPage < pageCount){
%>
<a href="BoardList.jsp?pageNum=<%=startPage+10%>">[๋ค์]</a>
<%
}
}
%>
</p>
</center>
</body>
</html>
page Ex
์ด ๊ฒ์๊ธ์ด : 184๊ฐ
int pageSize=10;
String pageNum = 1
int count = 0; //์ ์ฒด ๊ธ์ ๊ฐฏ์๋ฅผ ์ ์ฅํ๋ ๋ณ์
int number = 184; //ํ์ด์ง ๋๋ฒ๋ง ๋ณ์ = count - (currentPage -1) * pageSize;
int currentPage = 1
count = 184
int startRow=1 = (currentPage-1)*pageSize+1;
int endRow=10 = currentPage * pageSize;
int pageCount=19 = count / pageSize + (count%pageSize == 0 ? 0 : 1);
int startPage = 1;
int pageBlock = 10;
int endPage=10 = startPage+pageBlock-1;
1 2 3 4 5 6 7 8 9 10 [๋ค์] ๋ค์์ ๋๋ฅด๋ฉด startPage=1+10=11 ๋์ ๋ค์ ์ฒ์์ผ๋ก ๋์ด๊ฐ
์ด ๊ฒ์๊ธ์ด : 184๊ฐ
int pageSize=10;
String pageNum = 11
int count = 0; //์ ์ฒด ๊ธ์ ๊ฐฏ์๋ฅผ ์ ์ฅํ๋ ๋ณ์
int number = 84; //ํ์ด์ง ๋๋ฒ๋ง ๋ณ์ = count - (currentPage -1) * pageSize;
int currentPage = 11
count = 184
int startRow=101 = (currentPage-1)*pageSize+1;
int endRow=110 = currentPage * pageSize;
int pageCount=19 = count / pageSize + (count%pageSize == 0 ? 0 : 1);
int startPage = 11;
int pageBlock = 10;
int endPage=19 = startPage+pageBlock-1;
[์ด์ ] 11 12 13 14 15 16 17 18 19