본문 바로가기

Spring Framework 개발 일지/Spring으로 게시판 만들기

FirstSpringBoard#6-3] 마지막 페이지에 대한 페이징 처리

반응형

안녕하세요.

요 며칠은 의욕이 너무 안나서 드라마 정주행하고 공부는 간간히 하면서 지냈습니다.

포스팅은 꿈도 못 꿨고요.

전에 개발 했던 것을 git 커밋 로그를 보면서 따라가면서 포스팅하는거라 지루한 감도 있습니다.

그래도 화이팅해야죠.



저번 시간에 우리가 페이징 처리와 검색 기능을 구현했었습니다.

그런데 페이징 처리가 불 완전한데요.

마지막 페이지가 제대로 조회되지 않으실겁니다.

그 이유는 마지막 페이지의 특징 때문인데요.

마지막 페이지 이전의 모든 게시물들은 게시글을 무조건 정해진 갯수만큼 보여줍니다.

그런데 마지막 페이지가 보여주는 게시글을 게시글의 전체 수에 따라서 달라져요.


전체 게시글이 12개이고 한 페이지당 3개씩 보여준다면 마지막 페이지에서도 3개를 보여주니 에러가 나지 않겠죠.

그런데 전체 게시글이 14개라면 마지막 페이지에서는 게시글 2개를 보여줘야합니다.

이 경우에 우리가 작성한대로 처리되면 nullpointException이 뜰거에요. 무조건 3개씩 list에 넣어주는데 게시글은 2개만 조회되기 때문입니다.

Exception을 방지하려면 마지막 페이지에 보여줘야하는 게시글의 수에 따라서 다르게 list에 add를 해줘야됩니다.

그리 복잡하지 않습니다. 수정된 Controller는 아래와 같아요.




그리고 에러를 방지하기 위해서 index.jsp에서 totalpage에 -1을 해줬었어요.

이제 totalpage에 -1을 제거해주세요.

수정한 index.jsp의 코드는 아래와 같아요.

totalpage는 그냥 totalpage로 나타나요.



효과적으로 페이징 처리를 완료했습니다.

하지만 코드가 너무 길고 복잡하네요. 마음에 들지 않아요.

DataBase에서 효과적으로 페이징을 처리할 수 있도록 제공하는 기능이 있어요.

mysql같은경우에는 limit 함수를 이용해서 간단하게 페이징 처리를 할 수 있는데.

limit를 이용해서 페이징 처리를 해볼게요.

수고하셨습니다.


반응형