티스토리 뷰

게시판의 한 페이지 게시글이 10개씩 보이게 하고 싶다!

 

한 페이지에 보여줄 포스트 개수 설정한다.

int pageSize=10;

 

페이지 번호 가져온다. (이 부분은 이후에 자세히 설명하고 일단은 이 정도로만)

String pageNum=request.getParameter("pageNum");

 

http://localhost:8080/project/board.jsp : 페이지번호 없는 경우
http://localhost:8080/project/board.jsp?pageNum=2  : 페이지 번호가 2인 경우

위를 참고해 페이지 번호가 null인 경우는 페이지 번호가 1이 되도록 한다.

 

if(pageNum==null){
	pageNum="1";
}

 

페이지 번호를 정수형으로 변경

int currentPage=Integer.parseInt(pageNum);

 

pageNum(=currentPage)와 pageSize로 시작 번호 startRow(페이지 시작 번호)를 구할 수 있다.

pageNum(페이지 번호) 1일 때,

pageSize(한 페이지에 보일 포스트 갯수)는 10이고 endRow(끝나는 페이지 번호)는 10이어야 한다.

 

startRow pageSize endRow
1 10 10 (1+10) -1
2 10 20 (11+10) -1
3 10 30 (21+10) -1

 

식으로 바꾸면 이렇게 된다. 또한 끝나는 번호는 이렇게 나온다.

int startRow = (currentPage-1)*pageSize+1;
int endRow = startRow+pageSize-1;

 

페이지 처리를 하지 않았던 getBoardList의 매개변수에 startRow와 pageSize를 넣고

잘라서 가지고 온다는 의미로, limit(시작행-1, 갯수)을 추가한다.

 

주의할 점! -1을 넣는 이유 : limit(1,10)일 경우, 1을 포함하지 않고 10까지 나오기 때문!

String sql="select * from board order by num desc limit ?,?";
pstmt=con.prepareStatement(sql);
pstmt.setInt(1, startRow-1);
pstmt.setInt(2, pageSize);

 

getBoardList 메서드를 startRow와 pageSize를 받게끔 수정한다.

List boardList=boardDAO.getBoardList(startRow,pageSize);

 

 

'배운 것 기록 > jsp' 카테고리의 다른 글

servelet 연결, 주소 매핑  (0) 2022.07.25
MVC2 등장 배경  (0) 2022.07.25
[jsp] MemberDTO, MemberDAO  (0) 2022.06.24
[jsp] delete, list 구현  (0) 2022.06.15
[jsp] insert, update 구현(DB연결, 쿼리 실행)  (0) 2022.06.14
댓글
최근에 올라온 글
«   2025/01   »
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
글 보관함