java 数据放在了list中,如何实现前台分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数据放在了list中,如何实现前台分页相关的知识,希望对你有一定的参考价值。

List cdkErrorTotalViewList = new ArrayList();
CdkErrorTotalView cdkErrorTotalView = new CdkErrorTotalView();
cdkErrorTotalViewList.add(cdkErrorTotalView);
以上是后台代码,数据在cdkErrorTotalViewList中,如何实现在前台分页的效果?
多谢各位!!!

把list放在session里,然后计算出页码,利用页码和每页显示的数据量,控制要显示的数据,显示在页面上。追问

按照追加的代码,放到session中,请问如何操作?

追答

什么是追加代码?我不知道你用的是什么框架,不同框架如何取得session方法是不一样的。

追问

就是我问题补充中的代码。我用的SSH,前台用的ExtJs框架

追答

存值
session.setAttribute(key:随便写个字符串作为标记, cdkErrorTotalViewList );

取值
List aaa = (List)session.setAttribute(key:存值的时候写的字符串);

参考技术A 比如你有个List list = new ArrayList();
你在页面拿到这个list集合,存在页面内存里面,通过数组下边每次取5条记录,来实现分页效果
参考技术B 怎么不直在后台用分页查询追问

就是在后台分页!

追答

思路如楼上的兄弟说的
如果你数据非数据库数据、而是自定义的某数据的话,刚要自己搭建好框架,无非就是总计个数、页码、页显示条数这些元素

追问

数据不是直接从数据库中取出的数据

追答

不是说SSH,怎么不是数据库了,不解
转分页代码
public List getAllStudents(int pageSize, int startRow) throws Exception
Session session=this.getSession();
String hql="from Student";
Query query=session.createQuery(hql);
query.setFirstResult(startRow);
query.setMaxResults(pageSize);
return query.list();

追问

感谢回答!!
如果是一个hql语句,没问题,直接用HIbernate的Query 就可以了,但是现在我的数据是从多个数据库表中经过复杂计算后组装成一个Bean实例,再将其放到List中的,就是我贴上去的代码中的cdkErrorTotalViewList。如何用这个list中的数据去分页,不是一个hql语句。

追答

哦,了解
那你是需要自己构造一个类,并封装好信息LIST、页码、显示个数等;从通过前台传递的page、pageNum返回合适的List
具体如何实现这里就不好说了

参考技术C 这么做 只能说你的设计有问题 参考技术D set Session里以便保存 ,其他和普通分页一样追问

List cdkErrorTotalViewList = new ArrayList();
CdkErrorTotalView cdkErrorTotalView = new CdkErrorTotalView();
cdkErrorTotalViewList.add(cdkErrorTotalView);
以上是后台代码,数据在cdkErrorTotalViewList中,将cdkErrorTotalViewList放到session中后又如何操作呢?前台是ExtJs框架。

追答

设置变量:
int nowPage//当前页
int pageRecordCount//每页显示多少条记录
int totalPageCount//总页数
在ExtJs框架中去看看这几个变量是怎么获取和操作的,应该有相关例子,你可以去查查。

网站中如何实现分页

  最近做一个项目,要用到分页功能,参考了很多方法,有的不合适,有的不喜欢,于是自己在他们的基础上整了一个;思路是这样的:先把需要分页的数据或是记录都查询出来 存入一个集合类里如List或是Vector,然后利用其sublist(int findex,int eindex)方法,获取需要分页的数据或记录,关于sublist()函数就自己去查API了。下面贴下代码吧,首先是将分页所需的一些个东东抽象出一个javabean对象—PageBean:

 

[java] view plain copy
 
  1. public class PageBean {  
  2.     private int curPage;             //当前页  
  3.     private int pageCount;           //总页数  
  4.     private int rowsCount;           //总行数  
  5.     private int pageSize=10;         //每页多少行  
  6.       
  7.       
  8.       
  9.     public PageBean(int rows){  
  10.           
  11.         this.setRowsCount(rows);  
  12.         if(this.rowsCount % this.pageSize == 0){  
  13.             this.pageCount=this.rowsCount / this.pageSize;  
  14.         }  
  15.         else if(rows<this.pageSize){  
  16.             this.pageCount=1;  
  17.         }  
  18.         else{  
  19.             this.pageCount=this.rowsCount / this.pageSize +1;  
  20.         }  
  21.     }  
  22.       
  23.       
  24.     public int getCurPage() {  
  25.         return curPage;  
  26.     }  
  27.     public void setCurPage(int curPage) {  
  28.         this.curPage = curPage;  
  29.     }  
  30.     public int getPageCount() {  
  31.         return pageCount;  
  32.     }  
  33.     public void setPageCount(int pageCount) {  
  34.         this.pageCount = pageCount;  
  35.     }  
  36.     public int getPageSize() {  
  37.         return pageSize;  
  38.     }  
  39.     public void setPageSize(int pageSize) {  
  40.         this.pageSize = pageSize;  
  41.     }  
  42.     public int getRowsCount() {  
  43.         return rowsCount;  
  44.     }  
  45.     public void setRowsCount(int rowsCount) {  
  46.         this.rowsCount = rowsCount;  
  47.     }  
  48. }  

 

分页显示:

 

[java] view plain copy
 
  1. List clist=adminbiz.queryNotFullCourse();//将查询结果存放在List集合里  
  2. PageBean pagebean=new PageBean(clist.size());//初始化PageBean对象  
  3. //设置当前页  
  4. pagebean.setCurPage(page); //这里page是从页面上获取的一个参数,代表页数  
  5. //获得分页大小  
  6. int pagesize=pagebean.getPageSize();  
  7. //获得分页数据在list集合中的索引  
  8. int firstIndex=(page-1)*pagesize;  
  9. int toIndex=page*pagesize;  
  10. if(toIndex>clist.size()){  
  11.     toIndex=clist.size();  
  12. }  
  13. if(firstIndex>toIndex){  
  14.     firstIndex=0;  
  15.     pagebean.setCurPage(1);  
  16. }  
  17. //截取数据集合,获得分页数据  
  18. List courseList=clist.subList(firstIndex, toIndex);  

 

以上是关于java 数据放在了list中,如何实现前台分页的主要内容,如果未能解决你的问题,请参考以下文章

java查询的分页思路!!

jqgrid能前台分页么?jqgrid前端分页和排序的实现

Spring中的分页

前台js如何获取后台传过来的list数据?

对前台传回的list进行分割,并放在sql语句的in中

请问各位java中如何将数据库返回的多个字段值拼接为一个list并转换为json对象返回到前台,谢谢!