java 数据放在了list中,如何实现前台分页
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 数据放在了list中,如何实现前台分页相关的知识,希望对你有一定的参考价值。
List cdkErrorTotalViewList = new ArrayList();
CdkErrorTotalView cdkErrorTotalView = new CdkErrorTotalView();
cdkErrorTotalViewList.add(cdkErrorTotalView);
以上是后台代码,数据在cdkErrorTotalViewList中,如何实现在前台分页的效果?
多谢各位!!!
按照追加的代码,放到session中,请问如何操作?
追答什么是追加代码?我不知道你用的是什么框架,不同框架如何取得session方法是不一样的。
追问就是我问题补充中的代码。我用的SSH,前台用的ExtJs框架
追答存值
session.setAttribute(key:随便写个字符串作为标记, cdkErrorTotalViewList );
取值
List aaa = (List)session.setAttribute(key:存值的时候写的字符串);
你在页面拿到这个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
具体如何实现这里就不好说了
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:
- public class PageBean {
- private int curPage; //当前页
- private int pageCount; //总页数
- private int rowsCount; //总行数
- private int pageSize=10; //每页多少行
- public PageBean(int rows){
- this.setRowsCount(rows);
- if(this.rowsCount % this.pageSize == 0){
- this.pageCount=this.rowsCount / this.pageSize;
- }
- else if(rows<this.pageSize){
- this.pageCount=1;
- }
- else{
- this.pageCount=this.rowsCount / this.pageSize +1;
- }
- }
- public int getCurPage() {
- return curPage;
- }
- public void setCurPage(int curPage) {
- this.curPage = curPage;
- }
- public int getPageCount() {
- return pageCount;
- }
- public void setPageCount(int pageCount) {
- this.pageCount = pageCount;
- }
- public int getPageSize() {
- return pageSize;
- }
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
- public int getRowsCount() {
- return rowsCount;
- }
- public void setRowsCount(int rowsCount) {
- this.rowsCount = rowsCount;
- }
- }
分页显示:
- List clist=adminbiz.queryNotFullCourse();//将查询结果存放在List集合里
- PageBean pagebean=new PageBean(clist.size());//初始化PageBean对象
- //设置当前页
- pagebean.setCurPage(page); //这里page是从页面上获取的一个参数,代表页数
- //获得分页大小
- int pagesize=pagebean.getPageSize();
- //获得分页数据在list集合中的索引
- int firstIndex=(page-1)*pagesize;
- int toIndex=page*pagesize;
- if(toIndex>clist.size()){
- toIndex=clist.size();
- }
- if(firstIndex>toIndex){
- firstIndex=0;
- pagebean.setCurPage(1);
- }
- //截取数据集合,获得分页数据
- List courseList=clist.subList(firstIndex, toIndex);
以上是关于java 数据放在了list中,如何实现前台分页的主要内容,如果未能解决你的问题,请参考以下文章