java中display1_关于displaytag1.1的两种分页
文章出处:http://blog.csdn.net/shrek_xu/archive/2006/06/01/767885.aspx
最近因为项目需要,所以想把原来使用的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);
在前台只需象下面这样写就可以了
最开始我对每次都要传入总共有多少条数据表示疑问,认为这个没有必要,只需要第一次传入就可以了,但是后来仔细想想,因为整个分页过程是动态的,所以,很有可能在你翻页的同时,原来的数据已经发生了变化,所以每次传入总数目是很有必要的
如果大家需要转载,请你也附上此文连接
posted on 2007-11-14 19:55 Ke 阅读(358) 评论(0) 编辑 收藏 所属分类: tag
java中display1_关于displaytag1.1的两种分页相关推荐
- Java中BorderLayout布局管理器的两种排列实现方式
java中Frame类默认的布局管理器为BorderLayout,其主要是将Frame窗口分为东西南北中五个区域,每个区域仅限于放一个组件,如加入多个,前免得会被覆盖,解决方法为:可以在一个区域中加入 ...
- Java中对List集合排序的两种方法
第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> {private ...
- java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法
Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...
- java语言的多态性及特点_Java中的方法的多态性有两种形式:( )和( )。_学小易找答案...
[填空题]已知函数 ,则微分 . [填空题]. [单选题]71.用转动小滑板法车圆锥时产生( )误差的原因是小滑板转动角度计算错误. [单选题] [填空题]Java中的方法的多态性有两种形式:( )和 ...
- java数组循环扩容_Java中实现数组动态扩容的两种方法
Java中实现数组动态扩容的两种方法 java中初始化一个数组需要定义数组的容量,而在我们使用数组时往往会遇到数组容量不够的情况,此时我们就需要通过动态扩容的方式来来根据需求扩大数组的容量. 我们可以 ...
- Java中double类型输出小数点后两位
Java中double类型输出小数点后两位 思路 就是在输出的时候使用字符串格式即可. double testNum=1.123456789;System.out.println(String.for ...
- JAVA中线程同步的方法(7种)汇总
JAVA中线程同步的方法(7种)汇总 同步的方法: 一.同步方法 即有synchronized关键字修饰的方法. 由于java的每个对象都有一个内置锁,当用此关键字修饰方法时, 内置锁会保护整个方法. ...
- (转)java中对集合对象list的几种循环访问总结
Java集合的Stack.Queue.Map的遍历 在集合操作中,常常离不开对集合的遍历,对集合遍历一般来说一个foreach就搞定了,但是,对于Stack.Queue.Map类型的遍历,还是有一些讲 ...
- java中为final变量赋值的几种方式
java中为final变量赋值的几种方式 前言 使用final修饰变量,很多人第一时间想到的就是不可变.然后以为变量必须得在声明的时候就为其赋初始值,其实不然,本文将详细讲解java中使用final修 ...
- Java 解析Excel(xls、xlsx两种格式)
Java 解析Excel(xls.xlsx两种格式) 一.环境 JDK 1.8 二.JAR 1.commons-collections4-4.1.jar 2.poi-3.9-20121203.jar ...
最新文章
- LoadRunner 常见错误收集及解决方案
- php获得帮助类数据_PHP解析xml格式数据工具类示例
- Python date,datetime,time等相关操作总结
- Android PC投屏简单尝试—最终章1
- GDCM:gdcm::PixelFormat的测试程序
- 创建自定义地理(坐标)变换
- 深度学习(四十一)cuda8.0+ubuntu16.04+theano、caffe、tensorflow环境搭建
- React Native Android原生模块开发实战|教程|心得|怎样创建React Native Android原生模块...
- c语言函数怎么返回,C语言函数的返回值应该怎么返回
- Bom及Bom对象的详细介绍
- Win10任务栏100%透明怎么设置
- 原来把300页Word转成PPT,只需要一个键!别再复制粘贴了
- Cadence Allegro怎么从2层板添加层到4层板
- CSS3---移动端苹果安卓适配
- web开发常用js及html代码
- 计蒜客T1005输出字符三角形
- 话费充值接口文档源码(2)
- js,前端下载PDF方法总结
- 【修复版】仿我爱看电影网站模板/海洋CMS影视系统模板
- 大话西游之大圣娶亲中的至尊宝和紫霞仙子