반응형
# 자바 게시판 페이징 처리
## 단순히 페이징만 할 경우(페이지 하단에 나오는 페이지 번호 출력 제한없이)
### .java 파일
- itemsInAPage : 한 페이지에 출력 할 게시물 수
- totalCount : 전체 게시물 수
- totalPage : 출력 할 전체 페이지 수
int page = 1; // 시작 페이지
int itemsInAPage = 10;
int totalCount = db 등에서 전체 게시물 카운트해서 값 가져오기.
int totalPage = (int) Math.ceil(totalCount / (double) itemsInAPage);
- 위 상태에서 jsp에서 값을 사용하기 위해 setAttribute 진행 (req는 request)
req.setAttribute("totalCount", totalCount);
req.setAttribute("totalPage", totalPage);
req.setAttribute("page", page);
### .jsp 파일
- java 파일과 연결된 jsp 파일
- 페이지에 접근하는 세부 코드(링크?)는 짜여진 코드에 따라 다르므로 참고만 하기
<table>
<tr>
// 이전 페이지 버튼
if ( page != 1 ) {
int k = page;
<td><a href="?page=<%=k-1 %>">이전</a></td>
}
for ( int i = 1; i <= totalPage; i++ ) {
<td><a href="?page=<%=i %>"><%=i %></a></td>
}
// 다음 페이지 버튼
if ( page != totalPage ) {
int k = page;
<td><a href="?page=<%=k+1 %>">다음</a></td>
}
</tr>
</table>
## 기존 페이징 코드에 + 페이징 버튼 제한
### .java 파일
- pageCount : 한번에 출력될 페이징 버튼 수
startPage : 페이징 버튼 시작 값
endPage : 페이징 버튼 종료 값
int page = 1; // 시작 페이지
int itemsInAPage = 10;
int totalCount = db 등에서 전체 게시물 카운트해서 값 가져오기.
int totalPage = (int) Math.ceil(totalCount / (double) itemsInAPage);
int pageCount = 5;
int startPage = ((page - 1) / pageCount) * pageCount + 1;
int endPage = startPage + pageCount - 1;
// 추가로 조건 설정
if( totalPage < page) {
page = totalPage;
}
if ( endPage > totalPage) {
endPage = totalPage;
}
- 위 상태에서 jsp에서 값을 사용하기 위해 setAttribute 진행 (req는 request)
req.setAttribute("totalCount", totalCount);
req.setAttribute("totalPage", totalPage);
req.setAttribute("page", page);
req.setAttribute("pageCount", pageCount);
req.setAttribute("startPage", startPage);
req.setAttribute("endPage", endPage);
### .jsp 파일
- java 파일과 연결된 jsp 파일
- 페이지에 접근하는 세부 코드(링크?)는 짜여진 코드에 따라 다르므로 참고만 하기
<table>
<tr>
// 이전 페이지 버튼
if ( page != 1 ) {
int k = page;
<td><a href="?page=<%=k-1 %>">이전</a></td>
}
for ( int i = starPage; i <= endPage; i++ ) {
<td><a href="?page=<%=i %>"><%=i %></a></td>
}
// 다음 페이지 버튼
if ( page != totalPage ) {
int k = page;
<td><a href="?page=<%=k+1 %>">다음</a></td>
}
</tr>
</table>
반응형
'프로그래밍 > 자바, JDBC' 카테고리의 다른 글
스프링 부트1 (0) | 2020.07.28 |
---|---|
배경 이미지 넣기, 배경 이미지 크기 조절하기(background: url) (0) | 2020.07.27 |
JSTL (0) | 2020.07.24 |
자바스크립트 비밀번호 암호화(SHA256) (0) | 2020.07.22 |
자바 이메일 보내기 구현(Gmail SMTP) (0) | 2020.07.21 |