無線&移動互聯網技術研發
換位思考·····
posts - 19, comments - 53, trackbacks - 0, articles - 283
BlogJava
::
首頁
::
新隨筆
::
聯系
::
聚合
::
管理
java List 分頁應用(一)
Posted on 2010-01-09 14:35
Gavin.lee
閱讀(5110)
評論(1)
編輯
收藏
所屬分類:
java SE & EE
應用類:
package
com.Gavin.tools.util;
/** */
/**
* List分頁
* 實現:利用List的獲取子List方法,實現對List的分頁
*
@author
顯武
* @date 2010-1-8 16:27:31
*
*/
import
java.util.ArrayList;
import
java.util.List;
public
class
PageModel
{
private
int
page
=
1
;
//
當前頁
public
int
totalPages
=
0
;
//
總頁數
private
int
pageRecorders;
//
每頁5條數據
private
int
totalRows
=
0
;
//
總數據數
private
int
pageStartRow
=
0
;
//
每頁的起始數
private
int
pageEndRow
=
0
;
//
每頁顯示數據的終止數
private
boolean
hasNextPage
=
false
;
//
是否有下一頁
private
boolean
hasPreviousPage
=
false
;
//
是否有前一頁
private
List list;
//
private Iterator it;
public
PageModel(List list,
int
pageRecorders)
{
init(list, pageRecorders);
//
通過對象集,記錄總數劃分
}
/** */
/**
* 初始化list,并告之該list每頁的記錄數
*
@param
list
*
@param
pageRecorders
*/
public
void
init(List list,
int
pageRecorders)
{
this
.pageRecorders
=
pageRecorders;
this
.list
=
list;
totalRows
=
list.size();
//
it = list.iterator();
hasPreviousPage
=
false
;
if
((totalRows
%
pageRecorders)
==
0
)
{
totalPages
=
totalRows
/
pageRecorders;
}
else
{
totalPages
=
totalRows
/
pageRecorders
+
1
;
}
if
(page
>=
totalPages)
{
hasNextPage
=
false
;
}
else
{
hasNextPage
=
true
;
}
if
(totalRows
<
pageRecorders)
{
this
.pageStartRow
=
0
;
this
.pageEndRow
=
totalRows;
}
else
{
this
.pageStartRow
=
0
;
this
.pageEndRow
=
pageRecorders;
}
}
//
判斷要不要分頁
public
boolean
isNext()
{
return
list.size()
>
5
;
}
public
void
setHasPreviousPage(
boolean
hasPreviousPage)
{
this
.hasPreviousPage
=
hasPreviousPage;
}
public
String toString(
int
temp)
{
String str
=
Integer.toString(temp);
return
str;
}
public
void
description()
{
String description
=
"
共有數據數:
"
+
this
.getTotalRows()
+
"
共有頁數:
"
+
this
.getTotalPages()
+
"
當前頁數為:
"
+
this
.getPage()
+
"
是否有前一頁:
"
+
this
.isHasPreviousPage()
+
"
是否有下一頁:
"
+
this
.isHasNextPage()
+
"
開始行數:
"
+
this
.getPageStartRow()
+
"
終止行數:
"
+
this
.getPageEndRow();
System.out.println(description);
}
public
List getNextPage()
{
page
=
page
+
1
;
disposePage();
System.out.println(
"
用戶凋用的是第
"
+
page
+
"
頁
"
);
this
.description();
return
getObjects(page);
}
/** */
/**
* 處理分頁
*/
private
void
disposePage()
{
if
(page
==
0
)
{
page
=
1
;
}
if
((page
-
1
)
>
0
)
{
hasPreviousPage
=
true
;
}
else
{
hasPreviousPage
=
false
;
}
if
(page
>=
totalPages)
{
hasNextPage
=
false
;
}
else
{
hasNextPage
=
true
;
}
}
public
List getPreviousPage()
{
page
=
page
-
1
;
if
((page
-
1
)
>
0
)
{
hasPreviousPage
=
true
;
}
else
{
hasPreviousPage
=
false
;
}
if
(page
>=
totalPages)
{
hasNextPage
=
false
;
}
else
{
hasNextPage
=
true
;
}
this
.description();
return
getObjects(page);
}
/** */
/**
* 獲取第幾頁的內容
*
*
@param
page
*
@return
*/
public
List getObjects(
int
page)
{
if
(page
==
0
)
this
.setPage(
1
);
else
this
.setPage(page);
this
.disposePage();
if
(page
*
pageRecorders
<
totalRows)
{
//
判斷是否為最后一頁
pageEndRow
=
page
*
pageRecorders;
pageStartRow
=
pageEndRow
-
pageRecorders;
}
else
{
pageEndRow
=
totalRows;
pageStartRow
=
pageRecorders
*
(totalPages
-
1
);
}
List objects
=
null
;
if
(
!
list.isEmpty())
{
objects
=
list.subList(pageStartRow, pageEndRow);
}
//
this.description();
return
objects;
}
public
List getFistPage()
{
if
(
this
.isNext())
{
return
list.subList(
0
, pageRecorders);
}
else
{
return
list;
}
}
public
boolean
isHasNextPage()
{
return
hasNextPage;
}
public
void
setHasNextPage(
boolean
hasNextPage)
{
this
.hasNextPage
=
hasNextPage;
}
public
List getList()
{
return
list;
}
public
void
setList(List list)
{
this
.list
=
list;
}
public
int
getPage()
{
return
page;
}
public
void
setPage(
int
page)
{
this
.page
=
page;
}
public
int
getPageEndRow()
{
return
pageEndRow;
}
public
void
setPageEndRow(
int
pageEndRow)
{
this
.pageEndRow
=
pageEndRow;
}
public
int
getPageRecorders()
{
return
pageRecorders;
}
public
void
setPageRecorders(
int
pageRecorders)
{
this
.pageRecorders
=
pageRecorders;
}
public
int
getPageStartRow()
{
return
pageStartRow;
}
public
void
setPageStartRow(
int
pageStartRow)
{
this
.pageStartRow
=
pageStartRow;
}
public
int
getTotalPages()
{
return
totalPages;
}
public
void
setTotalPages(
int
totalPages)
{
this
.totalPages
=
totalPages;
}
public
int
getTotalRows()
{
return
totalRows;
}
public
void
setTotalRows(
int
totalRows)
{
this
.totalRows
=
totalRows;
}
public
boolean
isHasPreviousPage()
{
return
hasPreviousPage;
}
}
測試類:
package
com.Gavin.tools.util;
import
java.util.ArrayList;
import
java.util.List;
public
class
TestPagerModel
{
public
static
void
main(String args[])
{
List
<
String
>
list
=
new
ArrayList
<
String
>
();
list.add(
"
a
"
);
list.add(
"
b
"
);
list.add(
"
c
"
);
list.add(
"
d
"
);
list.add(
"
e
"
);
list.add(
"
f
"
);
list.add(
"
g
"
);
list.add(
"
h
"
);
list.add(
"
h
"
);
list.add(
"
i
"
);
list.add(
"
j
"
);
list.add(
"
k
"
);
list.add(
"
l
"
);
list.add(
"
m
"
);
PageModel pm
=
new
PageModel(list,
5
);
List sublist
=
pm.getObjects(
3
);
for
(
int
i
=
0
; i
<
sublist.size(); i
++
)
{
System.out.println(sublist.get(i));
}
System.out.println(sublist.get(
0
));
}
}
評論
#
re: java List 分頁應用(一)
回復
更多評論
2014-10-17 16:27 by
ss
ss
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發表評論。
網站導航:
博客園
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方式提交)
搜索
積分與排名
積分 - 356538
排名 - 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.?學計算機的你傷不起啊【雷人】(1021)
2.?看看這個笑話,你就知道干IT的不容易了!!(623)
3.?清朝皇帝列表(618)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(470)
5.?木匠家的門(424)
評論排行榜
1.?學計算機的你傷不起啊【雷人】(0)
2.?清朝皇帝列表(0)
3.?木匠家的門(0)
4.? 每天讀一遍,不久你就會變! ---- 很好很強大(0)
5.?我喜歡的語錄(0)
主站蜘蛛池模板:
亚洲中文字幕无码日韩
|
亚洲天堂免费在线
|
又粗又大又猛又爽免费视频
|
亚洲男人的天堂网站
|
在线免费观看污网站
|
亚洲国产精品美女久久久久
|
免费一级毛片正在播放
|
久久午夜夜伦鲁鲁片免费无码影视
|
亚洲三级视频在线
|
暖暖日本免费在线视频
|
91香焦国产线观看看免费
|
亚洲国产夜色在线观看
|
日本免费中文字幕在线看
|
99久久精品日本一区二区免费
|
亚洲自偷自偷在线成人网站传媒
|
免费一区二区视频
|
一个人看www在线高清免费看
|
视频免费1区二区三区
|
国产亚洲精品观看91在线
|
日本人的色道免费网站
|
老妇激情毛片免费
|
久久综合图区亚洲综合图区
|
一二三四免费观看在线视频中文版
|
一级毛片在线免费看
|
亚洲国产日韩视频观看
|
中文字幕无码精品亚洲资源网
|
一级毛片在线观看免费
|
男女作爱在线播放免费网站
|
亚洲狠狠婷婷综合久久蜜芽
|
国产色在线|亚洲
|
亚洲无线观看国产精品
|
久久精品女人天堂AV免费观看
|
国产精品高清免费网站
|
亚洲国产成人99精品激情在线
|
亚洲成综合人影院在院播放
|
爱情岛论坛网亚洲品质自拍
|
国产91免费在线观看
|
一级女人18毛片免费
|
夜夜嘿视频免费看
|
免费看男女下面日出水视频
|
最近中文字幕mv免费高清在线
|