kwak
98
2020-02-18 18:09:49
2
406

JAVA 페이징 관련 질문드려요!!


현재 총 리스트값 => listcount,

현재 row 수 => rownum,

한페이지동 보여줄 리스트 수 blockcount => 10

위 3가지 내용으로

row수에 따라

1~10 -> 1

11~20 ->2

21~30 ->3

이렇게 계산하려면 어떻게 해야할까요?


-1
0
  • 답변 2

  • 니플
    2020-02-18 18:18:32 작성 2020-02-18 18:25:49 수정됨

    첫번째 페이지에서는 10개를 보여주면 되는데

    총 갯수인 listcount가 10개 미만인 경우가 있을 수 있습니다.

    그러면 listcount만큼 보여주면 됩니다.


    listcount가 해당 페이지가

    1페이지라면 1~10

    2페이지라면 11~20

    3페이지라면 21~30인데

    이것은 풀로 있을때이고 아니면 listcount을 계산해서 보여주면 되요


    listcount이 16개면

    1페이지라면 1~10

    2페이지라면 11~16 이렇게 뿌려주면 되는 것이죠


    listcount이 20개면

    1페이지라면 1~10

    2페이지라면 11~20 이렇게 뿌려주면 되요


    따라서 해당 페이지의 최대값을 listcount하고 비교하면 됩니다.

    1페이지에서 게시글 최대값은 10이예요

    만약 8개 있다고 한다면 게시글이 10개보다 적으니 8개까지 보여주면 됩니다.

    해당 페이지의 최대값하고 listcount를 비교해서 더 작은 값까지 보여주면 되는 것이죠


    페이지마다 구간을 계산하는 방법은

    1페이지 1~10

    2페이지 11~20

    3페이지 21~30

    이런 규칙인데


    페이지마다의 최대값은 10, 20, 30으로 blockcount의 배수입니다.

    페이지 수와 곱하면 바로 최대값이 나오죠

    (페이지 수를 pagenum으로 부르겠습니다.)

    따라서 페이지당 최대값은 pagenum * blockcount입니다.


    페이지마다의 최소값은 1, 11, 21으로 blockcount의 배수에 1을 더한 형태예요

    즉 1은 10*0+1, 11은 10*1+1, 21은 10*2+1으로 볼 수 있습니다.

    따라서 페이지당 최소값은 (pagenum - 1) * blockcount + 1 입니다.


    자신이 쓴 글은 비추하지 말아요ㅠㅠ

  • 난한놈만패
    1k
    2020-02-18 18:23:43

    현재 작성자 분은 페이징에 대한 개념이 확실하게 잡혀있지 않은 상태에서 구현에만 촛점을 맞추시고 있는 듯합니다

    검색을 해보시면 페이징에 대한 처리방식이 많이 나와있으니 참고해보시는게 어떨까요

  • 로그인을 하시면 답변을 등록할 수 있습니다.