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