当前位置: 首页 > news >正文

烟台网站建设的公司成都百度seo推广

烟台网站建设的公司,成都百度seo推广,做论坛网站如何赚钱,c 做网站怎么连接到别的网页起因 在工作中,涉及到导出的功能,由于导出和搜索的结果是相同的,所以导出和搜索是同一接口。但由于搜索的分页是每页10条,而导出却是没有条数限制的,所以引出下面的问题 controller方法如下: PostMapping(&…
  • 起因

在工作中,涉及到导出的功能,由于导出和搜索的结果是相同的,所以导出和搜索是同一接口。但由于搜索的分页是每页10条,而导出却是没有条数限制的,所以引出下面的问题

  • controller方法如下:

    @PostMapping("/orders/search")
    public Page<SearchOrderOut> getOrders(@RequestBody @Valid Search search,@PageableDefault(sort = {"modifiedDate", "createdDate"},direction = Sort.Direction.DESC) Pageable pageable) {return preOrderService.getOrders(search, pageable);
    }

    通过前端传递的pagesize来设定分页的大小,在使用中发现无论page的size修改为多大,导出最多只能2000条,于是怀疑源码中可能有最大值的限制,于是跟踪源码发现果真如此,源码如下(仅相关代码):

    /**
    * Extracts paging information from web requests and thus allows injecting {@link Pageable} instances into controller
    * methods. Request properties to be parsed can be configured. Default configuration uses request parameters beginning
    * with {@link #DEFAULT_PAGE_PARAMETER}{@link #DEFAULT_QUALIFIER_DELIMITER}.
    * 
    * 从Web请求中提取分页信息,从而允许将Pageable实例注入controller方法
    * 可以配置要解析的请求属性,默认配置使用以DEFAULT_PAGE_PARAMETER,DEFAULT_QUALIFIER_DELIMITER开头的请求参数
    *
    * @since 1.6
    * @author Oliver Gierke
    * @author Nick Williams
    * @author Mark Paluch
    */
    public class PageableHandlerMethodArgumentResolver implements PageableArgumentResolver {private static final String DEFAULT_PAGE_PARAMETER = "page";private static final String DEFAULT_SIZE_PARAMETER = "size";private static final String DEFAULT_PREFIX = "";private static final String DEFAULT_QUALIFIER_DELIMITER = "_";// 默认page size最大2000private static final int DEFAULT_MAX_PAGE_SIZE = 2000;static final Pageable DEFAULT_PAGE_REQUEST = new PageRequest(0, 20);private Pageable fallbackPageable = DEFAULT_PAGE_REQUEST;private SortArgumentResolver sortResolver;private String pageParameterName = DEFAULT_PAGE_PARAMETER;private String sizeParameterName = DEFAULT_SIZE_PARAMETER;private String prefix = DEFAULT_PREFIX;private String qualifierDelimiter = DEFAULT_QUALIFIER_DELIMITER;// maxPageSize 最大2000private int maxPageSize = DEFAULT_MAX_PAGE_SIZE;@Overridepublic Pageable resolveArgument(MethodParameter methodParameter, ModelAndViewContainer mavContainer,NativeWebRequest webRequest, WebDataBinderFactory binderFactory) {assertPageableUniqueness(methodParameter);Pageable defaultOrFallback = getDefaultFromAnnotationOrFallback(methodParameter);String pageString = webRequest.getParameter(getParameterNameToUse(pageParameterName, methodParameter));// sizeParameterName="size",从请求中拿到size值String pageSizeString = webRequest.getParameter(getParameterNameToUse(sizeParameterName, methodParameter));boolean pageAndSizeGiven = StringUtils.hasText(pageString) && StringUtils.hasText(pageSizeString);if (!pageAndSizeGiven && defaultOrFallback == null) {return null;}int page = StringUtils.hasText(pageString) ? parseAndApplyBoundaries(pageString, Integer.MAX_VALUE, true): defaultOrFallback.getPageNumber();int pageSize = StringUtils.hasText(pageSizeString) ? parseAndApplyBoundaries(pageSizeString, maxPageSize, false): defaultOrFallback.getPageSize();// Limit lower boundpageSize = pageSize < 1 ? defaultOrFallback.getPageSize() : pageSize;// Limit upper bound// 无论上面怎么处理,pageSize>2000的话,pageSize=2000,否则就是pageSize的值pageSize = pageSize > maxPageSize ? maxPageSize : pageSize;Sort sort = sortResolver.resolveArgument(methodParameter, mavContainer, webRequest, binderFactory);// Default if necessary and default configuredsort = sort == null && defaultOrFallback != null ? defaultOrFallback.getSort() : sort;return new PageRequest(page, pageSize, sort);}
    }
  • 自定义page配置来解决

    自定义size最大为10000

import org.springframework.context.annotation.Configuration;
import org.springframework.data.web.PageableHandlerMethodArgumentResolver;
import org.springframework.web.method.support.HandlerMethodArgumentResolver;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;import java.util.List;@Configuration
public class PageConfig extends WebMvcConfigurerAdapter {private static final int PMP_MAX_PAGE_SIZE = 10000;@Overridepublic void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {PageableHandlerMethodArgumentResolver resolver = new PageableHandlerMethodArgumentResolver();resolver.setMaxPageSize(PMP_MAX_PAGE_SIZE);argumentResolvers.add(resolver);super.addArgumentResolvers(argumentResolvers);}
}

 


来源于:

https://blog.csdn.net/u010634897/article/details/81612124

http://www.lbrq.cn/news/2727415.html

相关文章:

  • 网站滚动栏特效模板html优化大师网页版
  • 做一个网站开发要多少钱北京搜索引擎优化经理
  • 做网站去哪里投放广告网店运营培训哪里好
  • 环保网站开发seo关键词排名技术
  • 网站新闻怎么写自己怎样推广呢
  • No家电网站建设关键词推广优化排名品牌
  • 上海建筑设计院待遇怎么样抖音seo怎么收费
  • 企业门户管理系统怎么优化推广自己的网站
  • 怎么做网站游戏网站优化招商
  • 做logo什么网站seo快排技术教程
  • 建设银行中国网站软件推广平台有哪些?哪个比较好
  • 创意产品设计网站推荐品牌运营包括哪些内容
  • 网站建设webmeng今日深圳新闻最新消息
  • 做网站 网上接单15个常见关键词
  • 海口专业网站制作策划百度seo白皮书
  • h3c路由器怎么做网站映射如何进行网络推广和宣传
  • 陕西省建设八大员官方网站网站建设黄页免费观看
  • 可以做样机图的网站seo线上培训班
  • 公司网站制作注意什么卡一卡二卡三入口2021
  • 网站如何做长尾词排名谷歌广告联盟官网
  • 品牌的佛山网站建设怎么找拉新推广平台
  • 如何自己做门户网站益阳网站seo
  • 建站快车官网如何做百度关键词推广
  • 找公司做网站注意事项优化系统的软件
  • 安微省建设厅网站seo推广优化外包公司
  • 个人备案能做什么网站电商培训有用吗
  • 网站访问量大打不开舆情视频
  • 用php做动态网站google海外推广
  • 微信做兼职什么网站好6个好用的bt种子搜索引擎
  • 手机wap网站制作免费最全的百度网盘搜索引擎
  • AutoSar AP平台中EM,CM,SM,PHM,LT等AP基础软件都有宿主进程吗
  • 前端基础知识版本控制系列 - 01( 对版本管理的理解)
  • 面试题之项目中git如何进行管理
  • GPT-o3回归Plus用户,GPT5拆分三种模式,对标Grok
  • excel-随笔记
  • vue excel转json功能 xlsx