更新时间:2022-06-20 10:03:07 来源:极悦 浏览5675次
极悦小编告诉大家,在某些情况下,当我们调用第三方接口时,他们的接口会进行分页,但是并不能满足我们的需求。然后我们需要自己做分页处理。总体思路是:
第一步:获取第三方接口调用返回的所有结果(可以循环获取)。具体例子请参考Step1。您应该根据自己的实际情况进行调整和修改。
第二步:根据返回值进行分页(调用方法Step2)。同时写了一个分页工具(Step3)供大家参考
Step1:循环获取第三方接口的所有数据
int pageIndex = 0;
int pageSize = 50;
//循环,分页获取所有数据并返回结果
做{
页面索引++;
//分页第三方接口的输入参数
requestType.pageInfo = new SoaPageInfoDto();
requestType.pageInfo.pageIndex = pageIndex;
requestType.pageInfo.pageSize = pageSize;
//调用第三方接口
soaRep = CreditCardOfflineSoaSrvClient.getInstance().queryTrainTicketUserStandardListNew(requestType);
if(soaRep == null || soaRep.queryUserInfoList == null){
休息;
}
结果列表.add(soaRep);
}while ((pageSize*pageIndex) <soaRep.pageDto.pageCount);/*循环结束条件是当前查询数大于返回结果数*/
Step2 : 在返回结果前手动分页
if (activityInfoList != null && activityInfoList.size()> 0) {
//实际请求的pageIndex和pageSize
int start = (req.pageIndex -1) * req.pageSize;
int end = req.pageIndex * req.pageSize;
response.activityInfos = PageHandleUtil.handlePage(activityInfoList, start, end);
}
Step3(PageHandleUtil工具类):
公共类 PageHandleUtil {
公共静态 <T> List<T> handlePage(List<T> source, int start, int end){
int 总计 = source.size();
结束=结束>总计?总计:结束;
如果(结束<=开始){
返回空值;
}
返回源.subList(开始,结束);
}
}
以上情况是项目实际应用中遇到的问题及解决方法。大家如果想了解更多相关知识,可以关注一下极悦的Java视频教程,里面的课程内容从入门到精通,细致全面,通俗易懂,很适合没有基础的小伙伴学习,希望对大家能够有所帮助。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习