페이징 2. - List 시간 역순 정렬

알파로그·2023년 3월 21일
0

Spring Boot

목록 보기
20/57
post-custom-banner

✏️ 등록 시간 역순으로 정렬하기

별도의 설정을 하지않고 paging 을 하게되면 먼저 등록한 순서대로 web page 에 나타나게 된다.

하지만 실제로 운영되고있는 웹사이트들 에서는 대부분 최근에 등록된 게시물이 가장 위로 나타나게 역순으로 정렬시켜놓는다.

📍 게시물 역순정렬 공식

  • 나열 인덱스
    • 역순 정렬하기 전 게시물이 원래 갖고있던 번호
게시물의 번호 = 전체 게시물 수 - (현재 페이지 * 페이지당 게시물 개수) - 나열 인덱스
  • 오름차순 공식
게시물의 번호 = 현재 페이지 * 페이지당 게시물 개수 + 나열 인덱스 + 1

📍 역순 정렬 적용

  • paging.getTotalElements
    • 전체 게시물 개수 조회
  • paging.number
    • 현재 페이지 번호 조회
  • paging.size
    • 페이지당 게시물 개수 조회
  • loop.index
    • 나열 인덱스 조회 (0부터 시작됨)
    <tbody>
    <tr th:each="question, loop : ${paging}">
        <!-- 역순 정렬 로직 시작 -->
        <td th:text="${paging.getTotalElements - (paging.number * paging.size) - loop.index}"></td>
        <!-- 역순 정렬 로직 종료 -->
        <td>
            <a th:href="@{|/question/detail/${question.id}|}" th:text="${question.subject}"></a>
        </td>
        <td th:text="${#temporals.format(question.createDate, 'yyyy-MM-dd HH:mm')}"></td>
    </tr>
    </tbody>
profile
잘못된 내용 PR 환영
post-custom-banner

0개의 댓글