사실...봐도 모르겠어서 정리한 것을 적는다.
1. 한 화면에 몇 개의 글을 보여줄 것인가. w_size
2.총 몇개의 페이지를 보여줄 것인가.
이 두가지가 핵심이다...!
w_size = 5로 하고 있고. 즉 화면에 보여줄 글은 5개.
페이지수를 구하는 방법,,
글이 42개 있다는 가정 하, (42 - 1 / w_size) + 1 = 9 페이지..?
40개라면 (40-1 / w_size) +1 ...? 8페이지.
즉 페이지 카운트 식은
( 총 글 개수 -1 / 한 화면에 보여주고 싶은 글의 수) +1 이다.
페이지의 번호 구하기
페이징의 시작과 끝을 구해야 한다.
시작페이지 구하는 식
( (페이지번호 - 1) / 총 페이지 사이즈) * 총 페이지 사이즈 +1 값
페이지 번호가 1이라면 ( (1-1) / 5 ) * 5 +1 = 1...?
7페이지라면 ( (7-1 / 5) * 5 +1 = 6;;;
페이지의 마지막 번호 구하기
시작 페이지 번호 + 페이지 총 사이즈 -1
1 + 5 - 1 = 5 >>> 1 == 5
6 + 5 -1 = 10 >>> 6 == 10
더 나아가 시작 페이지 번호 + 페이지 총 사이즈-1 과 페이지 수 중 작은 값이다.
1 + 5 - 1 or 총페이지수 9 즉 5
6 + 5 - 1 or 총페이지수 9 즉 9
pre 와 next 구하기
조건은 2가지..? pre는 스타트번호가 1이아니면 되고 next는 총페이지 수보다 작으면 된다.
1페이지당 5개의 글이므로 현재 페이지 * 한화면 글의 갯수(5) = 마지막 글의 번호가 된다.
여기서 5를 빼고 +1 을 하면 시작 번호가 나온다.
즉 7페이지라면 마지막 글번호는 7*5 = 35 / 시작번호는 31 이다.
그러므로 현재 페이지 * 한화면 글의 갯수 - 한화면 글의 갯수 +1 이 1보다 작으면 pre는 허용하지 않고,
현재 페이지 * 한화면 글의 갯수 가 총 recode 보다 크다면 next는 허용하지 않는다.
'springframework' 카테고리의 다른 글
Spring Legacy Project 서블릿 스펙 3.1로 업그레이드. (0) | 2020.08.09 |
---|---|
@Log4j 에노테이션 적용이 안될때... (0) | 2020.08.02 |
@ComponentScan 의 사용. 필터링 추가, 및 제외. (0) | 2020.07.27 |
Multi-Thread 환경에서의 Spring Bean , ApplicationContext (0) | 2020.07.16 |
Servlet과 Thread-safe (0) | 2020.07.16 |