springboot中设置pageSize的默认值

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

猜你喜欢

转载自blog.csdn.net/hsg_happyLearning/article/details/83538391