无线&移动互联网技术研发
换位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首页
::
新随笔
::
联系
::
聚合
::
管理
java List 分页应用(二)
Posted on 2010-01-10 02:22
Gavin.lee
阅读(606)
评论(0)
编辑
收藏
所属分类:
java SE & EE
应用类:
package
com.Gavin.tools.util;
import
java.util.
*
;
/** */
/**
* 为List分页
* 样式比较简单,适合WAP使用,直接输出页码到页面
*/
public
class
PagerUtil
{
private
int
pageSize
=
10
;
//
每页大小
private
int
nextPage;
//
下一页
private
int
prePage;
//
前一页
private
int
pageCount;
//
总页数
private
int
currentPage;
//
当前页
private
int
listSize
=
0
;
//
记录总数
private
ArrayList alist
=
new
ArrayList();
private
String url;
/** */
/**
* 初始化记录列表
*
@param
it Iterator
*
@return
ArrayList
*/
public
ArrayList getAlist(Iterator it)
{
ArrayList al
=
new
ArrayList();
while
(it.hasNext())
{
al.add(it.next());
}
return
al;
}
/** */
/**
* 构造方法
*
@param
list Collection
*/
public
PagerUtil(Collection list)
{
alist
=
this
.getAlist(list.iterator());
listSize
=
alist.size();
nextPage
=
1
;
prePage
=
0
;
pageCount
=
listSize
/
pageSize
+
1
;
currentPage
=
1
;
}
/** */
/**
* 构造方法
*
@param
list Collection
*
@param
pageSize int
*/
public
PagerUtil(Collection list,
int
pageSize)
{
alist
=
(ArrayList) list;
this
.pageSize
=
pageSize;
listSize
=
alist.size();
nextPage
=
1
;
prePage
=
0
;
pageCount
=
listSize
/
pageSize;
if
(listSize
%
pageSize
>
0
)
{
pageCount
=
pageCount
+
1
;
}
currentPage
=
1
;
}
public
PagerUtil(Vector v,
int
pageSize)
{
for
(
int
i
=
0
; i
<
v.size(); i
++
)
{
alist.add(v.get(i));
}
this
.pageSize
=
pageSize;
listSize
=
alist.size();
nextPage
=
1
;
prePage
=
0
;
pageCount
=
listSize
/
pageSize;
if
(listSize
%
pageSize
>
0
)
{
pageCount
=
pageCount
+
1
;
}
currentPage
=
1
;
}
/** */
/**
* 下一页
*
@return
ArrayList
*/
public
int
nextPage()
{
int
tempInt
=
1
;
if
(currentPage
<
this
.getPageCount()
&&
currentPage
>=
1
)
{
tempInt
=
currentPage
+
1
;
}
else
tempInt
=
1
;
return
tempInt;
}
/** */
/**
* 前一页
*
@return
ArrayList
*/
public
int
prePage()
{
int
tempInt
=
1
;
if
(currentPage
>
1
)
{
tempInt
=
currentPage
-
1
;
}
else
tempInt
=
this
.getPageCount();
return
tempInt;
}
/** */
/**
* 第一页
*
@return
ArrayList
*/
public
int
firstPage()
{
nextPage
=
1
;
prePage
=
this
.getPageCount();
currentPage
=
nextPage;
return
currentPage;
}
/** */
/**
* 最后一页
*
@return
ArrayList
*/
public
int
endPage()
{
nextPage
=
this
.getPageCount();
prePage
=
nextPage
-
1
;
currentPage
=
nextPage;
return
currentPage;
}
/** */
/**
* 根据当前页得到记录列表
*
@param
currentPage int
*
@return
ArrayList
*/
public
ArrayList getPageList()
{
ArrayList tempList
=
new
ArrayList();
for
(
int
i
=
(currentPage
-
1
)
*
pageSize; i
<
(currentPage
-
1
)
*
pageSize
+
pageSize; i
++
)
{
if
(i
>=
0
&&
i
<
this
.alist.size())
{
tempList.add(alist.get(i));
}
else
break
;
}
return
tempList;
}
public
String getPageCtrlString()
{
String strCtrl
=
""
;
if
(
this
.currentPage
==
1
)
{
//
strCtrl = "首页 ";
}
else
{
strCtrl
=
"
<a href='
"
+
url
+
"
?page=1'>首页</a>
"
;
}
if
(
this
.currentPage
==
1
)
{
//
strCtrl = strCtrl + "上一页 ";
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
this
.prePage()
+
"
'>上页</a>
"
;
}
if
(
this
.currentPage
==
this
.pageCount)
{
//
strCtrl = strCtrl + "下一页 ";
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
this
.nextPage()
+
"
'>下页</a>
"
;
}
if
(
this
.currentPage
==
this
.pageCount)
{
//
strCtrl = strCtrl + "末页 ";
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
this
.getPageCount()
+
"
'>末页</a>
"
;
}
strCtrl
=
strCtrl
+
"
\n\r
"
;
//
换行
//
strCtrl = strCtrl
//
+ "跳到 <select name='toPage' onChange=\"window.location='" + url
//
+ "?page='+this.options[this.selectedIndex].value;\">";
if
(
this
.getPageCount()
<=
1
)
{
}
else
if
(
this
.getPageCount()
<=
7
)
{
for
(
int
i
=
1
; i
<=
this
.getCurrentPage(); i
++
)
{
if
(i
==
this
.getCurrentPage())
{
strCtrl
=
strCtrl
+
"
<b>
"
+
i
+
"
</b>
"
;
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
i
+
"
'>
"
+
i
+
"
</a>
"
;
}
}
}
else
if
(
4
<
this
.getCurrentPage()
&&
this
.getCurrentPage()
<
(
this
.getPageCount()
-
3
))
{
for
(
int
i
=
this
.getCurrentPage()
-
3
; i
<=
this
.getCurrentPage()
+
3
; i
++
)
{
if
(i
==
this
.getCurrentPage())
{
strCtrl
=
strCtrl
+
"
<b>
"
+
i
+
"
</b>
"
;
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
i
+
"
'>
"
+
i
+
"
</a>
"
;
}
}
}
else
if
(
this
.getCurrentPage()
<=
4
)
{
for
(
int
i
=
1
; i
<=
7
; i
++
)
{
if
(i
==
this
.getCurrentPage())
{
strCtrl
=
strCtrl
+
"
<b>
"
+
i
+
"
</b>
"
;
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
i
+
"
'>
"
+
i
+
"
</a>
"
;
}
}
}
else
if
((
this
.getPageCount()
-
6
)
<=
this
.getCurrentPage())
{
for
(
int
i
=
this
.getPageCount()
-
6
; i
<=
this
.getPageCount(); i
++
)
{
if
(i
==
this
.getCurrentPage())
{
strCtrl
=
strCtrl
+
"
<b>
"
+
i
+
"
</b>
"
;
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
i
+
"
'>
"
+
i
+
"
</a>
"
;
}
}
}
else
{
for
(
int
i
=
this
.getCurrentPage()
-
3
; i
<=
this
.getCurrentPage()
+
3
; i
++
)
{
if
(i
==
this
.getCurrentPage())
{
strCtrl
=
strCtrl
+
"
<b>
"
+
i
+
"
</b>
"
;
}
else
{
strCtrl
=
strCtrl
+
"
<a href='
"
+
url
+
"
?page=
"
+
i
+
"
'>
"
+
i
+
"
</a>
"
;
}
}
}
strCtrl
=
strCtrl
+
"
\n\r
"
;
//
换行
strCtrl
=
strCtrl
+
"
当前
"
+
this
.getCurrentPage()
+
"
/
"
+
this
.getPageCount()
+
"
页 每页
"
+
this
.getPageSize()
+
"
条 共
"
+
this
.listSize
+
"
条
"
;
return
strCtrl;
}
public
int
getCurrentPage()
{
return
currentPage;
}
public
int
getNextPage()
{
return
nextPage;
}
public
int
getPageCount()
{
return
pageCount;
}
public
int
getPageSize()
{
return
pageSize;
}
public
int
getPrePage()
{
return
prePage;
}
public
String getUrl()
{
return
url;
}
public
void
setPrePage(
int
prePage)
{
this
.prePage
=
prePage;
}
public
void
setPageSize(
int
pageSize)
{
this
.pageSize
=
pageSize;
}
public
void
setPageCount(
int
pageCount)
{
this
.pageCount
=
pageCount;
}
public
void
setNextPage(
int
nextPage)
{
this
.nextPage
=
nextPage;
}
public
void
setCurrentPage(
int
currentPage)
{
if
(currentPage
>
this
.getPageCount())
{
this
.currentPage
=
this
.getPageCount();
}
else
if
(currentPage
<
0
)
{
this
.currentPage
=
1
;
}
else
{
this
.currentPage
=
currentPage;
}
}
public
void
setUrl(String url)
{
this
.url
=
url;
}
}
测试类:
package
com.Gavin.tools.util;
import
java.util.ArrayList;
public
class
TestPagrUtil
{
public
static
void
main(String args[])
{
ArrayList al
=
new
ArrayList();
al.add(
"
a
"
);
al.add(
"
b
"
);
al.add(
"
c
"
);
al.add(
"
d
"
);
al.add(
"
e
"
);
al.add(
"
f
"
);
al.add(
"
g
"
);
al.add(
"
h
"
);
al.add(
"
i
"
);
al.add(
"
j
"
);
al.add(
"
k
"
);
al.add(
"
l
"
);
al.add(
"
m
"
);
al.add(
"
n
"
);
PagerUtil autopage
=
new
PagerUtil(al,
1
);
autopage.setCurrentPage(
5
);
autopage.setUrl(
"
/page/user/account/isprize.jsp
"
);
ArrayList currentPageList
=
autopage.getPageList();
String ctrlStr
=
autopage.getPageCtrlString();
for
(Object o: currentPageList)
{
System.out.println(o.toString());
}
System.out.println(ctrlStr);
}
}
//
//
e
//
<a href='/page/user/account/isprize.jsp?page=1'>首页</a> <a href='/page/user/account/isprize.jsp?page=4'>上页</a> <a href='/page/user/account/isprize.jsp?page=6'>下页</a> <a href='/page/user/account/isprize.jsp?page=14'>末页</a>
//
//
<a href='/page/user/account/isprize.jsp?page=2'>2</a> <a href='/page/user/account/isprize.jsp?page=3'>3</a> <a href='/page/user/account/isprize.jsp?page=4'>4</a> <b>5</b> <a href='/page/user/account/isprize.jsp?page=6'>6</a> <a href='/page/user/account/isprize.jsp?page=7'>7</a> <a href='/page/user/account/isprize.jsp?page=8'>8</a>
//
//
当前5/14页 每页1条 共14条
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
Chat2DB
C++博客
博问
管理
相关文章:
commons-lang-2.4.jar 包常用方法集锦
String&InputStream的相互转化
java 堆与栈的详细介绍
HttpClient 一文通 (摘)
java List 分页应用(二)
java List 分页应用(一)
java 有效的防止SQL注入
java clone
Java 序列化与反序列化
Junit 单元测试
Powered by:
BlogJava
Copyright © Gavin.lee
日历
<
2024年12月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(13)
给我留言
查看公开留言
查看私人留言
我参与的团队
深圳Java俱乐部(0/0)
随笔档案
(19)
2011年6月 (1)
2011年5月 (1)
2010年12月 (1)
2010年5月 (1)
2010年1月 (1)
2009年8月 (2)
2009年6月 (6)
2009年5月 (6)
文章分类
(277)
Date tools(4)
FreeMarker (7)
java design pattern(3)
java SE & EE(60)
JDBC(14)
jsp 【勿忘】(5)
Linux command(7)
Linux shell 入门(11)
Linux 日常应用(5)
Log && File Operate(8)
MemCache (5)
SiteMesh 页面装饰组件(2)
SSH2 --Hibernate(6)
SSH2 --Spring(9)
SSH2 --Struts2(21)
Subversion(Svn)(5)
wap 积累(8)
web 积累(前端 + 后台)(33)
xml doc 操作(12)
多线程(6)
性能分析(7)
类的设计(4)
经典语录(3)
经验&常识(32)
文章档案
(282)
2011年7月 (1)
2011年6月 (1)
2011年5月 (1)
2011年4月 (1)
2011年3月 (1)
2011年2月 (1)
2010年12月 (6)
2010年11月 (8)
2010年10月 (1)
2010年9月 (6)
2010年6月 (7)
2010年5月 (22)
2010年4月 (1)
2010年3月 (14)
2010年2月 (2)
2010年1月 (10)
2009年12月 (32)
2009年11月 (30)
2009年10月 (2)
2009年9月 (5)
2009年8月 (13)
2009年7月 (41)
2009年6月 (43)
2009年5月 (33)
收藏夹
(7)
java 基础类(1)
JSP(1)
server(2)
WEB(1)
数据库
设计模式(2)
友情链接
blogjava中的强人
chinaunix 社区
java 世纪网
java 基础辅导文章
javaeye 蓝色的风
SQL语句教程
与java共舞
中国协议分析网
中文java技术网
多线程
待看的文章
感兴趣的 csdn
我的漫漫程序之旅
新起点,新开始
梦幻之旅
赵学庆 的博客
超级多文章的牛人
隔叶黄莺 The Blog of Unmi
高手论坛
最新随笔
1. Mysql:1292 truncated incorrect double value -- concat 函数用法
2. Mysql 插入当前时间【摘】
3. 学计算机的你伤不起啊【雷人】
4. ucweb和opera工作原理的差别【摘】
5. 清朝皇帝列表
6. 设置IE查看源文件时默认打开的编辑器【转】
7. subclipse svn修改用户名密码问题【摘】
8. hibernate.dialect (Hibernate SQL方言)-备用
9. Tomcat JspFactory的异常的原因及解决办法
10. 关于MyEclipse中的Tomcat启动的问题 【Tomcat JDK name error】
11. win-xp 自动关机脚本 【古老的记忆】
12. Office 2007 Word 打开故障 - "The setup controller has encountered a problem during instll"
13. 木匠家的门
14. MyEclipse 后台进程一直运行"computing additional info"的解决办法
15. MyEclipse 一直 initializing java tooling······
16. MyEclipse 代码提示(“@”自动提示)
17. org.hibernate.hql.ast.QuerySyntaxException(我的流水账)
18. org.hibernate.hql.antlr.HqlBaseParser.recover(NoSuchMethodError)
19. SVN:cannot map the project with svn provider解决办法
20. WAP1.0 前端开发经验(原创-JSP)
21. Notepad++提示"Load langs.xml failed!"的解决方法
22. 让你的PC也能访问手机腾讯网
23. 【转】Proxool 连接池的配置-hibernate篇
24. Hibernate 主键生成策略
25. Quartz cron 表达式格式的含义
26. OGNL功用!!!
27. 使用Appfuse快速构建J2EE应用
28. 大型门户网站的十四大技术!!!
29. Urlrewrite与Struts2.x结合使用
30. HttpWatch的检测指示说明:Blocked、Connect、Send、Wait、Receive
31. 解读JAR,SIS,SISX格式区别!!!
32. commons-lang-2.4.jar 包常用方法集锦
33. Struts2中解决一个表单多种提交
34. JSTL(Java Standard Tag Library) 标记库的使用
35. Struts2验证错误信息的两个经典方法-addFieldError&addActionError
36. Hibernate常见异常-无法转换为内部表示
37. Spring AOP详细导读-用多手段实例对比呈现AOP
38. Struts2 Result-type(封装Action层到View层的跳转逻辑)
39. 在Struts2中以IOC和非IOC方式获取session&request
40. 采用url链接形式提交action(非s:from方式提交)
搜索
积分与排名
积分 - 354110
排名 - 156
最新评论
1. re: Struts2验证错误信息的两个经典方法-addFieldError&addActionError
S2C4
--asdad
2. re: Struts2验证错误信息的两个经典方法-addFieldError&addActionError[未登录]
asd
--as
3. 21232.2323
323432432
--冯海波
4. re: SVN:cannot map the project with svn provider解决办法[未登录]
多谢!已经解决。
--will
5. re: Struts2验证错误信息的两个经典方法-addFieldError&addActionError
44
--2
阅读排行榜
1. 学计算机的你伤不起啊【雷人】(1013)
2. 看看这个笑话,你就知道干IT的不容易了!!(620)
3. 清朝皇帝列表(611)
4. 每天读一遍,不久你就会变! ---- 很好很强大(466)
5. 木匠家的门(417)
评论排行榜
1. 学计算机的你伤不起啊【雷人】(0)
2. 清朝皇帝列表(0)
3. 木匠家的门(0)
4. 每天读一遍,不久你就会变! ---- 很好很强大(0)
5. 我喜欢的语录(0)