用ajax做一个查询,然后分页,在将数据返回从java返回ajax的时候,怎样将list等返回

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用ajax做一个查询,然后分页,在将数据返回从java返回ajax的时候,怎样将list等返回相关的知识,希望对你有一定的参考价值。

List<Map<String, Object>> list=null;
int rowCounts=findDao4.findInfoRowCount4();
if(rowCounts>0)

totalCount=rowCounts;
if(totalCount%pageSize==0)
totalPage=totalCount/pageSize;
else if(totalCount%pageSize>0)
totalPage=totalCount/pageSize+1;

if(currentPage<1||currentPage==1)
currentPage=1;
else if (currentPage>totalPage)
currentPage=totalPage;

int pageStart=(currentPage-1)*pageSize;
int pageEnd=pageStart+pageSize;
list=findDao4.findInfo4(pageStart,pageEnd);
//request.setAttribute("list", list);
//request.setAttribute("totalCount", totalCount);
//request.setAttribute("totalPage", totalPage);
//request.setAttribute("currentPage", currentPage);
上边的list和totalCount,totalPage,currentPage以怎样的形式通过json返回给ajax,在ajax成功函数里能取出来
--------------------
一个list或者单一字段的时候,我都是out.println();给反回ajax,或者JSONArray json = JSONArray.fromObject(b); 转一下,但是像上边代码那样数据一多,我不知道怎么往ajax返回了
我知道应该是可以以json的形式,返回,但是返回的数据有list的形式,有totalCount,totalPage这种,我想知道这些不同的形式怎么返回,最好能写个小例子,谢谢

参考技术A 不管有多少数据。 都把他们装到一个map里(spring mvc就是这么干的)然后把这个map转化成json字符串,用response 写到前台。
前台拿到这个json后根据你想要的效果解析,根据键获取value就可以了。本回答被提问者采纳
参考技术B 这个你参考一下,用json数据转换成string输出
String sql=sb.toString();
ArrayList<String> labellist = new ArrayList<String>();
labellist=AppStore_A_Manager.getRandomLabel(sql,length1);
JSONArray ja = JSONArray.fromObject(labellist);
response.setContentType("text/json;charset=UTF-8");
PrintWriter out = response.getWriter();
String result = "";
result += ja.toString();
result += "";
out.print(result);
参考技术C 使用JSON来返回数据到客户端。

接口调用外部系统返回数据,本系统做数据分页封装

场景:

  本系统用的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;
});
};

























以上是关于用ajax做一个查询,然后分页,在将数据返回从java返回ajax的时候,怎样将list等返回的主要内容,如果未能解决你的问题,请参考以下文章

ssm框架 怎么用ajax查询从数据库读取数据 返回json格式

ajax从struts2请求数据的返回形式

Bootstrap分页插件ajax返回数据,工具类的编写

在php里面用ajax怎么做分页

Thinkphp ajax分页

接口调用外部系统返回数据,本系统做数据分页封装