资源预览内容
第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
第9页 / 共13页
第10页 / 共13页
亲,该文档总共13页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SSH 分页通用参考(长洲第一恶人)内容:基于 struts+hibernate+spring 的一个分页显示的通用参考方案。版本:Struts2.3,Hibernate4.1,Spring3.1说明:(1 )上传日期为 2012/8/24,相当目前而言,其版本是较新的。正因为版本较新,所以一些代码并不如网上搜索到的那样。举例:在 Hibernate4.1 中,没有了 hibernateTemplate 接口,尽管在 spring3.1 的包里仍可以用 hibernate3 的此接口,但从版本统一的角度考虑,程序中也不能使用。(2 )本程序前面一半并不是本人原创,也是参考了网上资料。(3 )本程序仅供参考,如有更好的,望能共同交流。szxgy163.com(4 )本程序相关文件清单:1、 PagingDAO.java2、 PagingDAOImpl.java3、 PageBean.java4、 PagingService.java5、 PagingServiceImpl.java6、 UserinfoControl.java7、 struts.xml8、 applicationContext.xml9、 userinfoShowPaging.jsp10、 pagingInclude.jsp其中第 1、2 、3 、4、5、10 是主要文档,第 7、8 是配置文档,第 6、9 是应用文档。文件详单:1、 PagingDAO.javapackage cn.office.DAO;import java.util.List;public interface PagingDAO /* */* 分页查询* param hql 查询的条件* param beginset 开始记录* param length 一次查询几条记录* return*/public List queryForPage(final String hql,final int beginset,final int length);/* */* 查询所有记录数 * param hql 查询的条件* return 总记录数*/public int getAllRowCount(String hql);2、 PagingDAOImpl.javapackage cn.office.DAO;import java.util.List;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;public class PagingDAOImpl implements PagingDAOprivate SessionFactory sessionFactory;public SessionFactory getSessionFactory()return sessionFactory;public void setSessionFactory(SessionFactory sessionFactory)this.sessionFactory=sessionFactory;public Session getSession() /事务必须是开启的,否则获取不到return sessionFactory.getCurrentSession();/分页查询public List queryForPage(final String hql,final int beginset,final int length)Session session=sessionFactory.getCurrentSession();session.beginTransaction();Query query = session.createQuery(hql);/query.setParameter(username,userpwd.getUsername();query.setFirstResult(beginset);query.setMaxResults(length);List list = query.list();session.getTransaction().commit();return list;/查询所有记录数 public int getAllRowCount(String hql)/return getHibernateTemplate().find(hql).size();Session session=sessionFactory.getCurrentSession();session.beginTransaction();Query query = session.createQuery(hql);/query.setParameter(username,userpwd.getUsername();List list = query.list();session.getTransaction().commit();return list.size();3、 PageBean.javapackage cn.office.DAO;import java.util.List;public class PageBean private List list; /要返回的某一页的记录列表private List pageList;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 List getPageList() return pageList;public void setPageList(List pageList) this.pageList = pageList; 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 countBeginset(final int pageSize,final int currentPage)final int beginset = pageSize*(currentPage-1);return beginset;/* */* 计算当前页 ,若为 0 或者请求的 URL 中没有?page=,则用 1 代替* param page 传入的参数 (可能为空, 即 0,则返回 1)* return 当前页*/public static int countCurrentPage(int page)final int curPage = (page=0?1:page);return curPage;4、 PagingService.javapackage cn.office.DAO;public interface PagingService /* */* 分页查询* param currentPage 当前第几页* param pageSize 每页大小* return 封闭了分页信息(包括记录集 list)的 Bean*/public PageBean queryForPage(String phql,int pageSize,int currentPage);5、 PagingServiceImpl.javapackage cn.office.DAO;import java.util.ArrayList;import java.util.List;public class PagingServiceImpl implements PagingService/通过 applicationContext.xml 配置文件注入 PagingDao 的值pr
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号