基于displaytag大批量数据分页
来源:互联网 发布:node.js web框架 编辑:程序博客网 时间:2024/05/20 09:48
最近因为项目需要,所以想把原来使用的displaytag1.0升级为displaytag1.1,其实升级的原因很简单,1.0实在是太傻了,每次分页还需要将所有数据一次载入,效率低到无法忍受:)
1.1版最大的改进可以说是终于支持了大家期待以久的分次加载功能了,想显示多少数据就载入多少数据.1.1版本支持两种方式的分页,第一种是实现其org.displaytag.pagination.PaginatedList 接口,第二种是在页面和后台同时做修改来实现分页功能.在网上关于第二种分页的使用方法介绍的非常多,而且官方文档上面写的也比较详细,所以在这里我主要介绍自己是如何使用第一种方式进行分页的,且这种方式也是官方推荐分页方式(自己摸索的,呵呵,不好不要见怪)
首先写一个此接口的实现类
/** * PaginatedListImpl * User: shrek_xu * Date: 2006-5-30 * Time: 20:35:18 * * totalNum 所有条目数目 * currentPage 当前所在页号 * objectsPerPage 每页显示条数 * list 此页所需要显示的数据 */public class PaginatedListHelper implements PaginatedList{ private List list; private int pageNumber = 1; private int objectsPerPage = 20; private int fullListSize = 0; private String sortCriterion; private SortOrderEnum sortDirection; private String searchId;
public List getList() { return list; }
public void setList(List list) { this.list = list; }
public int getPageNumber() { return pageNumber; }
public void setPageNumber(int pageNumber) { this.pageNumber = pageNumber; }
public int getObjectsPerPage() { return objectsPerPage; }
public void setObjectsPerPage(int objectsPerPage) { this.objectsPerPage = objectsPerPage; }
public int getFullListSize() { return fullListSize; }
public void setFullListSize(int fullListSize) { this.fullListSize = fullListSize; }
public String getSortCriterion() { return sortCriterion; }
public void setSortCriterion(String sortCriterion) { this.sortCriterion = sortCriterion; }
public SortOrderEnum getSortDirection() { return sortDirection; }
public void setSortDirection(SortOrderEnum sortDirection) { this.sortDirection = sortDirection; }
public String getSearchId() { return searchId; }
public void setSearchId(String searchId) { this.searchId = searchId; }
}
然后在使用的时候只需要创建此类的一个实例,且将所需要的参数通过set方法赋值进去就可以了
int page;
/* *其中request中的page参数为displaytag中的默认当前页数,当然也可以使用*TableTagParameters.SORT_AMOUNT_PAGE来表示当前页数 */ if(request.getParameter("page")!=null && !"".equals(request.getParameter("page"))){ page=Integer.parseInt(request.getParameter("page")); }else{ page=1; }PaginatedList paginaredList=new PaginatedListHelper();
paginaredList.setPageNumber(page);
// 此页要显示的list数据
List list=.......;
paginaredList.setList(list);
// 总共有多少数据,他会根据所有数目和每页数目自动统计页数
paginaredList.setFullListSize(...);
// 如果你只设定这几个参数,那么其余的参数将会默认为你实现类中所赋的初值
最后,你还需要将这个实例放入到request或session中去,好让displaytag知道这个是外部分页
request.setAttribute("pageList",paginaredList);
在前台只需象下面这样写就可以了
<display:table name="${pageList}" id="list" requestURI="">
<display:column property="id"/>
</display:table>
最开始我对每次都要传入总共有多少条数据表示疑问,认为这个没有必要,只需要第一次传入就可以了,但是后来仔细想想,因为整个分页过程是动态的,所以,很有可能在你翻页的同时,原来的数据已经发生了变化,所以每次传入总数目是很有必要的
- 基于displaytag大批量数据分页
- 基于displaytag大批量数据分页
- 大批量的数据分页
- 大批量的数据分页
- s2sh displaytag大量数据分页
- DisplayTag 1.1 Released,可分页读取数据!!!
- DisplayTag 1.1 Released,分页读取数据
- 基于DisplayTag
- 在Struts中使用displaytag标签的排序/分页数据
- DisplayTag外部(External paging)分页如何导出全部数据?????
- displaytag分页 使用
- DisplayTag 分页 PaginatedList实现
- displaytag实现内存分页
- Displaytag实现分页
- displaytag分页中文处理
- Oracle大批量分页脚本
- DisplayTag中文查询分页解决方案
- displaytag分页导航的国际化
- Office Visio 2007 中文版 安装
- Configuring the Stenciling State
- 搜集资料
- Displaytag用法整理
- 忘记密码
- 基于displaytag大批量数据分页
- DisplayTag应用指南(转)
- Creating Effects
- 迈出人生重要的一步
- 2009 英特尔® 线程挑战赛 第六题 线段求交
- ZOJ1239 Hanoi Tower Troubles Again!
- linux top command
- mfc中 绘图所涉及到得保存问题
- 数据库jdbc连接方式