自我运行的::::::
pageBean 类
package com.test;
import java.io.Serializable;
import java.util.List;
public class PageBean {
private List list; // 要返回的某一页的记录列表
private int allRow; // 总记录数
private int totalPage; // 总页数
private int currentPage; // 当前页
private int pageSize; // 每页记录数
private boolean isFirstPage; // 是否为第一页
private boolean isLastPage; // 是否为最后一页
private boolean hasPreviousPage; // 是否有前一页
private boolean hasNextPage; // 是否有下一页
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getAllRow() {
return allRow;
}
public void setAllRow( int allRow) {
this.allRow = allRow;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage( int totalPage) {
this.totalPage = totalPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage( int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize( int pageSize) {
this.pageSize = pageSize;
}
/** */
/**
* 初始化分页信息
*/
public void init() {
this.isFirstPage = isFirstPage();
this.isLastPage = isLastPage();
this.hasPreviousPage = isHasPreviousPage();
this.hasNextPage = isHasNextPage();
}
/** */
/**
* 以下判断页的信息,只需getter方法(is方法)即可
*
* @return
*/
public boolean isFirstPage() {
return (currentPage == 1); // 如是当前页是第1页
}
public boolean isLastPage() {
return currentPage == totalPage; //如果当前页是最后一页
}
public boolean isHasPreviousPage() {
return currentPage != 1; //只要当前页不是第1页
}
public boolean isHasNextPage() {
return currentPage != totalPage; //只要当前页不是最后1页
}
/** */
/**
* 计算总页数,静态方法,供外部直接通过类名调用
*
* @param pageSize
* 每页记录数
* @param allRow
* 总记录数
* @return 总页数
*/
public static int countTotalPage( final int pageSize, final int allRow) {
int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
/ pageSize + 1;
return totalPage;
}
/** */
/**
* 计算当前页开始记录
*
* @param pageSize
* 每页记录数
* @param currentPage
* 当前第几页
* @return 当前页开始记录号
*/
public static int countOffset( final int pageSize, final int currentPage) {
final int offset = pageSize * (currentPage - 1);
return offset;
}
/** */
/**
* 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
*
* @param page
* 传入的参数(可能为空,即0,则返回1)
* @return 当前页
*/
public static int countCurrentPage( int page) {
final int curPage = (page == 0 ? 1 : page);
return curPage;
}
}
import java.io.Serializable;
import java.util.List;
public class PageBean {
private List list; // 要返回的某一页的记录列表
private int allRow; // 总记录数
private int totalPage; // 总页数
private int currentPage; // 当前页
private int pageSize; // 每页记录数
private boolean isFirstPage; // 是否为第一页
private boolean isLastPage; // 是否为最后一页
private boolean hasPreviousPage; // 是否有前一页
private boolean hasNextPage; // 是否有下一页
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
public int getAllRow() {
return allRow;
}
public void setAllRow( int allRow) {
this.allRow = allRow;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage( int totalPage) {
this.totalPage = totalPage;
}
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage( int currentPage) {
this.currentPage = currentPage;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize( int pageSize) {
this.pageSize = pageSize;
}
/** */
/**
* 初始化分页信息
*/
public void init() {
this.isFirstPage = isFirstPage();
this.isLastPage = isLastPage();
this.hasPreviousPage = isHasPreviousPage();
this.hasNextPage = isHasNextPage();
}
/** */
/**
* 以下判断页的信息,只需getter方法(is方法)即可
*
* @return
*/
public boolean isFirstPage() {
return (currentPage == 1); // 如是当前页是第1页
}
public boolean isLastPage() {
return currentPage == totalPage; //如果当前页是最后一页
}
public boolean isHasPreviousPage() {
return currentPage != 1; //只要当前页不是第1页
}
public boolean isHasNextPage() {
return currentPage != totalPage; //只要当前页不是最后1页
}
/** */
/**
* 计算总页数,静态方法,供外部直接通过类名调用
*
* @param pageSize
* 每页记录数
* @param allRow
* 总记录数
* @return 总页数
*/
public static int countTotalPage( final int pageSize, final int allRow) {
int totalPage = allRow % pageSize == 0 ? allRow / pageSize : allRow
/ pageSize + 1;
return totalPage;
}
/** */
/**
* 计算当前页开始记录
*
* @param pageSize
* 每页记录数
* @param currentPage
* 当前第几页
* @return 当前页开始记录号
*/
public static int countOffset( final int pageSize, final int currentPage) {
final int offset = pageSize * (currentPage - 1);
return offset;
}
/** */
/**
* 计算当前页,若为0或者请求的URL中没有"?page=",则用1代替
*
* @param page
* 传入的参数(可能为空,即0,则返回1)
* @return 当前页
*/
public static int countCurrentPage( int page) {
final int curPage = (page == 0 ? 1 : page);
return curPage;
}
}
Action相应的方法
public String showAll()
throws Exception {
String sql = "from User user ";
this.pagebean =loginServce.findAllByPage(pageSize, page,sql);
ActionContext context=ActionContext.getContext();
Map map=context.getSession();
map.put( "pagebean", pagebean);
return "all";
}
String sql = "from User user ";
this.pagebean =loginServce.findAllByPage(pageSize, page,sql);
ActionContext context=ActionContext.getContext();
Map map=context.getSession();
map.put( "pagebean", pagebean);
return "all";
}
//分页Dao类的分页方法
public List findAllByPage(String hql, int offset, int length) {
Session session=sessionFactory.openSession();
Query query=session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list=query.list();
/* for(int i=0;i<list.size();i++){
LeaveMessage leaveMessage=(LeaveMessage)list.get(i);
System.out.println("levaeMessage.leaveTime="+leaveMessage.getLeaveTime());
}*/
// session.close();
return list;
}
public PageBean findAllByPage( int pageSize, int page,String hql) {
// String hql="from Break breakInfo order by id desc";
int allRow= this .getAllRowCount(hql);
int totalPage=PageBean.countTotalPage(pageSize, allRow);
int offset=PageBean.countOffset(pageSize, page);
if (offset<0)
{
offset=0;
}
final int length=pageSize;
final int currentPage=PageBean.countCurrentPage(page);
List list= this .findAllByPage(hql, offset, length);
PageBean pageBean= new PageBean();
pageBean.setPageSize(pageSize);
pageBean.setAllRow(allRow);
pageBean.setCurrentPage(currentPage);
pageBean.setTotalPage(totalPage);
pageBean.setList(list);
pageBean.init();
return pageBean;
}
public int getAllRowCount(String hql) {
Session session=sessionFactory.getCurrentSession();
Query query=session.createQuery(hql);
List list=query.list();
session.close();
return list.size();
}
相应的分页jsp页面
< %@ page language ="java" import ="java.util.*" pageEncoding ="UTF-8"% >
< %@ taglib prefix ="c" uri ="http://java.sun.com/jsp/jstl/core" % >
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< head >
< base href="<%=basePath% >">
< title >My JSP 'index.jsp' starting page </title>
< meta http-equiv ="pragma" content ="no-cache" >
< meta http-equiv ="cache-control" content ="no-cache" >
< meta http-equiv ="expires" content ="0" >
< meta http-equiv ="keywords" content ="keyword1,keyword2,keyword3" >
< meta http-equiv ="description" content ="This is my page" >
<!--
< link rel ="stylesheet" type ="text/css" href ="styles.css" >
-->
</head>
< body >
< table width ="619" height ="294" border ="1" cellpadding ="0.05" cellspacing ="0.05" align ="center" >
< tr align ="center" >
< td >密码 </td>
< td >用户 </td>
< td >操作 </td>
</tr>
< c:forEach items ="${pagebean.list}" var ="list" >
< tr >
< td >${list.password} </td>
< td >${list.userName} </td>
< td > < a href ="loginManagerControl!delet.action?id=${list.id}" onclick ="return confirm('你确定要删除吗?')" >删除 </a>
< a href ="loginManagerControl!updateUI.action?id=${list.id}" >修改 </a>
< a href ="loginManagerControl!datil.action?id=${list.id}" >详细 </a>
</td>
</tr>
</c:forEach>
</table>
< center >
共${ pagebean.allRow} 条记录
共${pagebean.totalPage} 页
当前第${pagebean.currentPage }页 < br />
< c:choose >
< c:when test ="${pagebean.currentPage == 1}" >
第一页 上一页
</c:when>
< c:otherwise >
< a href ="loginManagerControl!showAll.action?page=1" >第一页 </a>
< a href ="loginManagerControl!showAll.action?page=${pagebean.currentPage-1}" >上一页 </a>
</c:otherwise>
</c:choose>
< c:choose >
< c:when test ="${pagebean.currentPage != pagebean.totalPage}" >
< a href ="loginManagerControl!showAll.action?page=${pagebean.currentPage+1}" >下一页 </a>
< a href ="loginManagerControl!showAll.action?page=${pagebean.totalPage}" >最后一页 </a>
</c:when>
< c:otherwise >
下一页 最后一页
</c:otherwise>
</c:choose>
</center>
</body>
</html>
本文转自yunlielai51CTO博客,原文链接:http://blog.51cto.com/4925054/1118334
,如需转载请自行联系原作者