티스토리 뷰
게시판의 한 페이지 게시글이 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 |
댓글