此分页程序
根据
robbin
所写 《应用Hibernate3的DetachedCriteria实现分页查询》
而来,相关代码参照
《
Spring2 Hibernate3 Junit
应用示例
》
本机访问地址:[url]http://localhost:8080/ad/queryToDayInfo.do[/url]
效果图示如下:
一、分页支持类
package
com.jh.xh.common;
import
java.util.List;
public
class
PaginationSupport {
PaginationSupport() {
}
public
final
static
int
PAGESIZE
= 30;
private
int
pageSize
=
PAGESIZE
;
private
List
items
;
private
int
totalCount
;
private
int
[]
indexes
=
new
int
[0];
private
int
startIndex
= 0;
public
PaginationSupport(List items,
int
totalCount) {
setPageSize(
PAGESIZE
);
setTotalCount(totalCount);
setItems(items);
setStartIndex(0);
}
public
PaginationSupport(List items,
int
totalCount,
int
startIndex) {
setPageSize(
PAGESIZE
);
setTotalCount(totalCount);
setItems(items);
setStartIndex(startIndex);
}
public
PaginationSupport(List items,
int
totalCount,
int
pageSize,
int
startIndex) {
setPageSize(pageSize);
setTotalCount(totalCount);
setItems(items);
setStartIndex(startIndex);
}
public
List getItems() {
return
items
;
}
public
void
setItems(List items) {
this
.
items
= items;
}
public
int
getPageSize() {
return
pageSize
;
}
public
void
setPageSize(
int
pageSize) {
this
.
pageSize
= pageSize;
}
public
int
getTotalCount() {
return
totalCount
;
}
public
void
setTotalCount(
int
totalCount) {
if
(totalCount > 0) {
this
.
totalCount
= totalCount;
int
count = totalCount /
pageSize
;
if
(totalCount %
pageSize
> 0)
count++;
indexes
=
new
int
[count];
for
(
int
i = 0; i < count; i++) {
indexes
[i] =
pageSize
* i;
}
}
else
{
this
.
totalCount
= 0;
}
}
public
int
[] getIndexes() {
return
indexes
;
}
public
void
setIndexes(
int
[] indexes) {
this
.
indexes
= indexes;
}
public
int
getStartIndex() {
return
startIndex
;
}
public
void
setStartIndex(
int
startIndex) {
if
(
totalCount
< +0)
this
.
startIndex
= 0;
else
if
(startIndex >=
totalCount
)
this
.
startIndex
=
indexes
[
indexes
.
length
- 1];
else
if
(startIndex < 0)
this
.
startIndex
= 0;
else
{
this
.
startIndex
=
indexes
[startIndex /
pageSize
];
}
}
public
int
getNextIndex() {
int
nextIndex = getStartIndex() +
pageSize
;
if
(nextIndex >=
totalCount
)
return
getStartIndex();
else
return
nextIndex;
}
public
int
getPreviousIndex() {
int
previousIndex = getStartIndex() -
pageSize
;
if
(previousIndex < 0)
return
0;
else
return
previousIndex;
}
/**
*
总页数;
总记录数
%
每页记录数
*
*
@return
*/
public
int
getTotalPages() {
int
totalPages;
if
(getTotalCount() % getPageSize() > 0) {
totalPages = getTotalCount() / getPageSize() + 1;
}
else
{
totalPages = getTotalCount() / getPageSize();
}
return
totalPages;
}
/**
*
当前页数;
起始位置
/
每页记录数
+
1
*
*
@return
*/
public
int
getCurrentPage() {
int
currentPage = getStartIndex() / getPageSize() + 1;
return
currentPage;
}
/**
*
尾
页
;
(
总页数
-
1)*
每页记录数
*
*
@return
*/
public
int
getLastPage() {
int
lastPage = (getTotalPages() - 1) * getPageSize();
return
lastPage;
}
}