SpringBoot + Thymeleaf로 페이징 실현
                                            
                                                
                                                
                                                
                                                
                                                
                                                 15745 단어  spring-bootThymeleaf
                    
개요



검증 환경
구현
Entity
Player.java
@Entity
@Getter
@Setter
public class Player {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    private String name;
    private Integer number;
    private String position;
}
리포지토리
PlayerRepository.java
@Repository
public interface PlayerRepository extends JpaRepository<Player, Integer> {
    public Page<Player> findAll(Pageable pageable);
}
htps : // / cs. sp 링 g. 이오/sp린 g-다타/코몬 s/도 cs/쿤 t/아피/오르/sp린 gf 라메를 rk/다타/도마인/파게. HTML
서비스
PlayerService.java
@Service
public class PlayerService {
    @Autowired
    private PlayerRepository playerRepository;
    public Page<Player> getPlayers(Pageable pageable) {
        return playerRepository.findAll(pageable);
    }
}
컨트롤러
PlayerController.java
@Controller
@RequestMapping("/pages/players")
public class PlayerController {
    @Autowired
    private PlayerService playerService;
    @GetMapping
    public String index(Pageable pageable, Model model) {
        Page<Player> playerPage = playerService.getPlayers(pageable);
        model.addAttribute("page", playerPage);
        model.addAttribute("players", playerPage.getContent());
        return "pages/index";
    }
}
구성
WebConfig.java
@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
        PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();
        // 1ページに表示する最大件数(10件)を設定する
        resolver.setMaxPageSize(10);
        argumentResolvers.add(resolver);
    }
}
resolver.setFallbackPageable(PageRequest.of(0, 10));※ PageRequest.of (페이지 번호, 페이지 크기) View(Thymeleaf)
index.html
<!-- body部 -->
<h1>INTER PLAYER</h1>
<table border="1" bordercolor="navy">
  <thead>
    <tr>
      <th>NAME</th>
      <th>NUMBER</th>
      <th>POSITION</th>
    </tr>
  </thead>
  <tbody>
    <tr th:each="player : ${players}">
      <td th:text="${player.name}"></td>
      <td th:text="${player.number}"></td>
      <td th:text="${player.position}"></td>
   </tr>
  </tbody>
</table>
<!-- 以降がページネーション部分 -->
<div>
  <ul>
    <li style="display:inline;">
      <span th:if="${page.first}"><<前</span>
      <a
        th:if="${!page.first}"
        th:href="@{/pages/players(page = ${page.number} - 1)}"
      >
        <<前
      </a>
    </li>
    <li
      th:each="i : ${#numbers.sequence(0, page.totalPages - 1)}"
      style="display:inline; margin-left:10px;"
    >
      <span th:if="${i} == ${page.number}" th:text="${i + 1}">1</span>
      <a
        th:if="${i} != ${page.number}"
        th:href="@{/pages/players(page = ${i})}"
      >
        <span th:text="${i+1}">1</span>
      </a>
    </li>
    <li style="display:inline; margin-left:10px;">
      <span th:if="${page.last}">次>></span>
      <a
        th:if="${!page.last}"
        th:href="@{/pages/players(page = (${page.number} + 1))}"
      >
        次>>
      </a>
    </li>
  </ul>
</div>
인터페이스 페이지 <T>
방법
상세
getContent()
페이지 콘텐츠를 List로 반환
getNumber()
얼마나 많은 페이지인지 반환
getSize()
페이지 크기 반환
getTotalPages()
총 페이지 수 반환
isFirst()
첫 페이지이거나 진위 값을 반환합니다.
isLast()
마지막 페이지이거나 진위 값을 반환합니다.
마지막으로
참조
2020/3/14 추가
@PageableDefault htps : // / cs. sp 링 g. 이오 / sp 링 g-data / Data-Komon s / Docs / Crun t / Api / Og / sp Rin gf Rame 푹신한 lt. HTMLPlayerController.java
@Controller
@RequestMapping("/pages/players")
public class PlayerController {
    @Autowired
    private PlayerService playerService;
    @GetMapping
    public String index(@PageableDefault(page = 0, size = 10) Pageable pageable, Model model) {
        Page<Player> playerPage = playerService.getPlayers(pageable);
        model.addAttribute("page", playerPage);
        model.addAttribute("players", playerPage.getContent());
        return "pages/index";
    }
}
Reference
이 문제에 관하여(SpringBoot + Thymeleaf로 페이징 실현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tanibuchi12/items/6c8fedbc19bdb277d6f2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)