分页显示数据的java工具类
参数解释:
list为所有的数据列表
pageStr为当前页
rowSize为行大小
使用方法:
在struts2框架下,通过get/set list,pageStr,rowSize
例如:
private Map<String, Object> mapPage = new HashMap<String, Object>();
//调用分页显示数据的工具方法
mapPage =PageUtil.getPageObj(list, pageStr, rowSize);
//将mapPage保存到request中,以备在jsp页面调用
request.setAttribute("map", mapPage);
//在jsp页面中显示分页数据
<div class="am-cf">
<div class="am-fr">
<ul class="am-pagination">
共 ${map.size} 条记录 共 ${map.totalSize} 页
<li ><a href="javascript:linkPage(1);">首页</a></li>
<span style="white-space:pre"> </span><li ><a href="javascript:linkPage(${map.pre});">上一页</a></li>
<span style="white-space:pre"> </span><s:iterator value="mapPage.inList" id="i">
<li ><a href="javascript:linkPage(${i});">
<c:choose>
<c:when test="${map.page == i }">
<span style="font-weight: bold">${i}</span>
</c:when>
<c:otherwise>
<span >${i}</span>
</c:otherwise>
</c:choose>
</a></li>
<span style="white-space:pre"> </span></s:iterator>
<li ><a href="javascript:linkPage(${map.next});">下一页</a></li>
<li ><a href="javascript:linkPage(${map.totalSize});">末页</a></li>
</ul>
</div>
</div>
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class PageUtil {
private static Map map = new HashMap();
/**
* 分页查询
*
* @param list
* 实体List
* @param pageStr
* 当前页
* @param rowSize
* 每页显示数量
* @return
*/
public static Map getPageObj(List list, String pageStr,
Integer rowSize) {
int pageNum = 1;
if (pageStr == null || Integer.parseInt(pageStr) == 0) {
pageNum = 1;
} else {
pageNum = Integer.parseInt(pageStr);
}
// 结束页为
int endPage = pageNum + rowSize;
// 上一页
int prePage = pageNum - 1;
// 下一页
int nextPage = pageNum + 1;
int perPageNum = (rowSize == null || rowSize <= 0) ? 5 : rowSize;
int totalSize = 0;
if (list != null) {
totalSize = list.size();
}
// 计算总页数
int pageCount = 0;
if (totalSize % perPageNum == 0) {
pageCount = totalSize / perPageNum;
} else {
pageCount = (totalSize / perPageNum) + 1;
}
// 判断上一页和下一页
if (nextPage > pageCount) {
nextPage = pageCount;
}
if (prePage < 1) {
prePage = 1;
}
List pageList = new ArrayList();
// 计算需要显示的结果数据
if(list != null){
for (int i = ((pageNum - 1) * perPageNum); i < totalSize
&& i < ((pageNum) * perPageNum) && pageNum > 0; i++) {
pageList.add(list.get(i));
}
}
// 保存要显示的页码
List inList = new ArrayList();
if(pageCount > rowSize) {
if(endPage > pageCount) {
for (int i = (pageCount - rowSize); i <= pageCount; i++) {
inList.add(i);
}
}else {
for (int i = pageNum; i <= endPage; i++) {
inList.add(i);
}
}
} else {
for (int i = 1; i <= pageCount; i++) {
inList.add(i);
}
}
map.put("totalSize", pageCount);
if(list != null){
map.put("size", list.size());
}else {
map.put("size", 0);
}
map.put("pageList", pageList);
map.put("inList", inList);
map.put("pre", prePage);
map.put("next", nextPage);
map.put("page", pageNum);
return map;
}
}
map = new HashMap();
/**
* 分页查询
*
* @param list
* 实体List
* @param pageStr
* 当前页
* @param rowSize
* 每页显示数量
* @return
*/
public static Map getPageObj(List list, String pageStr,
Integer rowSize) {
int pageNum = 1;
if (pageStr == null || Integer.parseInt(pageStr) == 0) {
pageNum = 1;
} else {
pageNum = Integer.parseInt(pageStr);
}
// 结束页为
int endPage = pageNum + rowSize;
// 上一页
int prePage = pageNum - 1;
// 下一页
int nextPage = pageNum + 1;
int perPageNum = (rowSize == null || rowSize <= 0) ? 5 : rowSize;
int totalSize = 0;
if (list != null) {
totalSize = list.size();
}
// 计算总页数
int pageCount = 0;
if (totalSize % perPageNum == 0) {
pageCount = totalSize / perPageNum;
} else {
pageCount = (totalSize / perPageNum) + 1;
}
// 判断上一页和下一页
if (nextPage > pageCount) {
nextPage = pageCount;
}
if (prePage < 1) {
prePage = 1;
}
List pageList = new ArrayList();
// 计算需要显示的结果数据
if(list != null){
for (int i = ((pageNum - 1) * perPageNum); i < totalSize
&& i < ((pageNum) * perPageNum) && pageNum > 0; i++) {
pageList.add(list.get(i));
}
}
// 保存要显示的页码
List inList = new ArrayList();
if(pageCount > rowSize) {
if(endPage > pageCount) {
for (int i = (pageCount - rowSize); i <= pageCount; i++) {
inList.add(i);
}
}else {
for (int i = pageNum; i <= endPage; i++) {
inList.add(i);
}
}
} else {
for (int i = 1; i <= pageCount; i++) {
inList.add(i);
}
}
map.put("totalSize", pageCount);
if(list != null){
map.put("size", list.size());
}else {
map.put("size", 0);
}
map.put("pageList", pageList);
map.put("inList", inList);
map.put("pre", prePage);
map.put("next", nextPage);
map.put("page", pageNum);
return map;
}
}
更多推荐
分页显示数据的java工具类
发布评论