遇到排序后分页是,会在sql中继续宁排序,用PageHelper进行分页。但如果是java代码里的虚拟字段排序,程序的分页自然在排序之前,排序时只是对这一页(limit)进行排序,并不完整,因此,需要自己写一个简单的list分页
1 public static List startPage(List list, Integer pageNum, Integer pageSize) {
2 if (list == null) {
3 return null;
4 }
5 if (list.size() == 0) {
6 return null;
7 }
8 Integer count = list.size(); // 记录总数
9 Integer pageCount = 0; // 页数
10 if (count % pageSize == 0) {
11 pageCount = count / pageSize;
12 } else {
13 pageCount = count / pageSize + 1;
14 }
15 int fromIndex = 0;
16 int toIndex = 0;
17 if (pageNum != pageCount) {
18 fromIndex = (pageNum - 1) * pageSize;
19 toIndex = fromIndex + pageSize;
20 } else {
21 fromIndex = (pageNum - 1) * pageSize;
22 toIndex = count;
23 }
24 List pageList = list.subList(fromIndex, toIndex);
25 return pageList;
26 }
使用
resultsList = OtherUtils.startPage(resultsList,pageNum,pageSize);
JSONObject resultObject = new JSONObject();
resultObject.put("content",resultsList);
resultObject.put("pageNum",pageNum);
resultObject.put("pageSize",pageSize);
Double totalPages = Double.valueOf(resultsList.size())/Double.valueOf(pageSize);
resultObject.put("totalPages",(int)Math.ceil(totalPages));
resultObject.put("totalSize",resultsList.size());