springboot中設定pageSize的預設值
阿新 • • 發佈:2018-12-28
springboot中設定pageSize的預設值
方式一、使用@PageableDefault註解
可以在形參上使用@PageableDefault註解指定預設的page和size
@GetMapping(value="/list") public String list(@PageableDefault(page=0, size=15)Pageable pageable) { return "list"; }
但是這種方式比較麻煩,需要在很多controller上都加上@PageableDefault(page=0, size=15)
方式二、統一處理
通過WebMvcConfigurerAdapte設定預設的size
1.appliation.properties配置檔案中加入以下配置
# 設定pageable中的pagesize的預設值
pageable.page.size=15
2.在WebMvcConfigurerAdapter類中重寫addArgumentResolvers()方法
package com.blog.personalblog.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config. annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import java.util.List;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Value("${pageable.page.size}")
private Integer pageSize;
/**
* 設定分頁時預設的每一頁資料量
* @param argumentResolvers
*/
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
PageableHandlerMethodArgumentResolver resolver =
new PageableHandlerMethodArgumentResolver();
resolver.setFallbackPageable(new PageRequest(0, pageSize));
argumentResolvers.add(resolver);
super.addArgumentResolvers(argumentResolvers);
}
}
這樣,pageSize的值預設就是15了
3.對應的分頁頁面
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org">
<body>
<div th:fragment='paginationbar'>
<ul class="pagination pagination-lg" th:if="${page.totalPages>1}">
<li class="page-item">
<a class="page-link" th:href="@{${url}(page = 0)}" data-target="#loading" data-toggle="modal">
首頁
</a>
</li>
<li th:if="${not page.first}" class="page-item">
<a class="page-link" th:href="@{${url}(page = ${page.number - 1})}" data-target="#loading" data-toggle="modal">
上一頁
</a>
</li>
<li th:if="${page.first}" class="page-item disabled">
<a class="page-link " th:href="@{${url}(page= 0)}" data-target="#loading" data-toggle="modal">上一頁</a>
</li>
<li class="page-item">
<a class="page-link" th:text="${page.number} + 1 + ' / ' + ${page.totalPages} + '頁'">
1/3頁</a>
</li>
<li th:if="${page.last}" class="page-item disabled">
<a class="page-link" th:href="@{${url}(page=(${page.totalPages}-1))}" data-target="#loading" data-toggle="modal">下一頁</a>
</li>
<li th:if="${not page.last}" class="page-item">
<a class="page-link" th:href="@{${url}(page = ${page.number + 1})}" data-target="#loading" data-toggle="modal">下一頁</a>
</li>
<li class="page-item">
<a class="page-link" th:href="@{${url}(page=(${page.totalPages}-1))}" data-target="#loading" data-toggle="modal">末頁</a>
</li>
</ul>
</div>
</body>
</html>
參考的文章:https://blog.csdn.net/u010634897/article/details/81612124