無線&移動互聯網技術研發
換位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
java List 分頁應用(二)
Posted on 2010-01-10 02:22
Gavin.lee
閱讀(613)
評論(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
日歷
<
2025年5月
>
日
一
二
三
四
五
六
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
5
6
7
常用鏈接
我的隨筆
我的文章
我的評論
我的參與
最新評論
留言簿
(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方式提交)
搜索
積分與排名
積分 - 356196
排名 - 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.?學計算機的你傷不起啊【雷人】(1020)
2.?看看這個笑話,你就知道干IT的不容易了!!(623)
3.?清朝皇帝列表(616)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(469)
5.?木匠家的門(423)
評論排行榜
1.?學計算機的你傷不起啊【雷人】(0)
2.?清朝皇帝列表(0)
3.?木匠家的門(0)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(0)
5.?我喜歡的語錄(0)
主站蜘蛛池模板:
日韩免费无码一区二区三区
|
33333在线亚洲
|
亚洲精品无码鲁网中文电影
|
亚洲午夜精品久久久久久浪潮
|
免费在线观看黄色毛片
|
国产精品免费视频播放器
|
国产精品酒店视频免费看
|
国产一级大片免费看
|
亚洲A∨午夜成人片精品网站
|
免费成人av电影
|
国产亚洲老熟女视频
|
国产AV无码专区亚洲AV漫画
|
亚洲线精品一区二区三区
|
中文字幕免费在线看线人动作大片
|
国产免费不卡v片在线观看
|
日本免费网址大全在线观看
|
99久久综合国产精品免费
|
成年人在线免费观看
|
国产免费观看青青草原网站
|
亚洲日本中文字幕一区二区三区
|
亚洲日产韩国一二三四区
|
亚洲AV永久无码精品
|
亚洲嫩草影院在线观看
|
亚洲综合国产成人丁香五月激情
|
亚洲AV无码片一区二区三区
|
一级人做人爰a全过程免费视频
|
baoyu777永久免费视频
|
91精品手机国产免费
|
久久WWW免费人成人片
|
免费国产人做人视频在线观看
|
亚洲伊人久久综合中文成人网
|
亚洲av中文无码乱人伦在线r▽
|
日韩一卡2卡3卡4卡新区亚洲
|
不卡精品国产_亚洲人成在线
|
亚洲av无码一区二区三区网站
|
亚洲精品二区国产综合野狼
|
又大又硬又爽免费视频
|
亚洲中文字幕无码永久在线
|
亚洲视频欧洲视频
|
亚洲狠狠婷婷综合久久蜜芽
|
国产黄色片免费看
|