接口调用外部系统返回数据,本系统做数据分页封装
场景:
本系统用的Mybatis分页插件PageHelper,调用了外部系统返回的数据为String类型的JSON串,数据量毕竟多,界面需要分页展示。
解决思路:
返回数据转List,然后把多个List放到一个List里,然后在从这个List里进行分页,前端只需要传一个页码过来即可,
部分代码如下:
Service代码
ResponseMsg<AppResp> responseMsg = new ResponseMsg<>();
int currentPage = req.getCurrentPage();
int pageSize = req.getPageSize();
String str= "[{"id":1546051323216,"name":"TPCE测试流程"},{"id":1546051343822,"name":"TPC-DS测试流程"}]";//例子
List list = JSONArray.parseArray( str );
List<Object> objects = new ArrayList<>();
int num = (currentPage > 1 ? (currentPage - 1) * pageSize : 0);
assert list != null;
for (int i = 0; i < pageSize && i < list.size() - num; i++) {
objects.add( list.get( num + i ) );
}
AppResp appResp = new AppResp();
appResp.setList( objects );
responseMsg.setResult( appResp );
responseMsg.setCurrentPage( currentPage );
responseMsg.setTotal( list.size() );
js代码:
$scope.list = [];
$scope.currentPage = 1;
$scope.pageSize = 10;
$scope.getProcessList = function () {
PARAM_BODY.currentPage = $scope.currentPage;
PARAM_BODY.pageSize = $scope.pageSize;
$http({
method: 'POST',
url: options.app_api + '/app/getProcessList',
data: JSON.stringify(PARAM_BODY)
}).success(function (data) {
$scope.list = data.result.list;
$scope.currentPage = data.currentPage;
$scope.total = data.total;
});
};
本随笔来源于:https://www.cnblogs.com/misterzhaoyan/p/10335386.html
[导入]Sybase EAServer 3.6新特性
[导入]仙剑奇侠传电视剧感悟
[导入]不知道几天没有看书了!
[导入]几年来就玩这一次,还这么惨!
[导入]JS里关于链接的小问题。
[导入]不经意间发现已经来这个博客有一年了。
[导入]实用篇:用asp实现QQ在线查询
[导入]对程序的热爱与执着。
[导入]在SYBASE数据库中使用游标(Cursors)将多行查询结果进行逐行处理
- 最新文章
-
【认识aspx】页面处理程序【页面生成关系】【页面继承关系】
学习笔记: Chapter 17 Inheritance 继承
thinkCSpy学习笔记: Chapter 13 Classes and objects 类和对象
thinkCSpy学习笔记:Chapter 1 The way of the program 编程之路
解决在matplotlib使用中文的问题
thinkCSpy学习笔记: Chapter 14 Classes and functions 类和函数
thinkCSpy学习笔记: Chapter 15 Classes and methods 类和方法
迟到的读书笔记 李开复自传:世界因你不同
后知后觉的我,Petri Net的提出者Carl Adam Petri已经去世了
爱不释手的新托福IBT词汇分类突破