ssh中分页
来源:互联网 发布:sqlserver存储过程if 编辑:程序博客网 时间:2024/05/18 03:24
1.写一个JavaBean
import java.util.List;public class PageBean { private Integer currentPage;//当前页 private Integer totalPage;//总页数 private Integer totalCount;//总纪录数 private Integer pageCount;//每页记录数 private Integer begin;//开始位置 private List<Reader> listReader;//每页显示的集合 //生成set、get方法 //....}
2.action中使用属性封装获取
//使用属性封装获取 private Integer currentPage =1; public Integer getCurrentPage() { return currentPage; } public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; } public String listByPage(){ PageBean pageBean = readerService.listByPage(currentPage); ServletActionContext.getRequest().setAttribute("pageBean", pageBean); return "listByPage"; }
3.service层写逻辑
public PageBean listByPage(Integer currentPage) { //创建PageBean对象 PageBean pageBean = new PageBean(); //当前页 pageBean.setCurrentPage(currentPage); //总记录数 int totalCount = readerDao.findCount(); pageBean.setTotalCount(totalCount); //每页显示记录数 int pageSize = 3;//自己设置 //总页数=总记录数除以每页显示记录数 int totalPage = 0; if(totalCount%pageSize==0){//如果能整除 totalPage = totalCount/pageSize; }else{//如果不能整除 totalPage = totalCount/pageSize+1; } //封装到PageBean中 pageBean.setTotalPage(totalPage); //开始位置=(当前页-1)*每页纪录数 int begin = (currentPage-1)*pageSize; //每页纪录的list集合 List<Reader> list = readerDao.findByPage(begin,pageSize); pageBean.setListReader(list); return pageBean; }
4.dao层实现
//查询总记录数public int findCount() { List<Object> list = (List<Object>) this.getHibernateTemplate().find("select count(*) from Reader"); if(list.size()!=0&&list!=null){ Object obj = list.get(0); Long lobj = (Long)obj; int count = lobj.intValue(); return count; } return 0; }//查询分页的listpublic List<Reader> findByPage(int begin, int pageSize) { //第一种方法:使用hibernate底层代码实现 //得到sessionFactory// SessionFactory sessionFactory = this.getHibernateTemplate().getSessionFactory();// //得到session对象// Session session = sessionFactory.getCurrentSession();// //设置分页的信息// Query query = session.createQuery("from Reader");// query.setFirstResult(begin);// query.setMaxResults(pageSize);// List<Reader> list = query.list(); //第二种方法:使用离线对象和hibernateTemplate的方法实现 //1.创建离线对象,设置对哪个实体类进行操作 DetachedCriteria criteria = DetachedCriteria.forClass(Reader.class); //2.调用HibernateTemplate中的方法 //第一个参数是离线对象,第二个参数是开始位置,第三个参数是每页记录数 List<Reader> list = (List<Reader>) this.getHibernateTemplate() .findByCriteria(criteria, begin, pageSize); return list; }
5.jsp页面显示
<body><table> <tr> <td>读者名称</td> <td>读者地址</td> <td>读者手机</td> </tr> <c:forEach items="${pageBean.listReader }" var="reader"> <tr> <td>${reader.readName }</td> <td>${reader.address }</td> <td>${reader.readPhone }</td> <td><a href="${pageContext.request.contextPath }/reader_change.action?id=${reader.rid}">修改</a></td> </tr> </c:forEach> </table> <div style="line-height: 20px;height:20px;text-align:right"> 共[<b>${pageBean.totalCount }</b>]条记录,共[<b>${pageBean.totalPage }</b>]页, 当前第[<b>${pageBean.currentPage }</b>]页 <!-- 前一页表示当前页减一 判断如果是第一页,就没有前一页 --> <c:if test="${pageBean.currentPage!=1 }"> [<a href="${pageContext.request.contextPath }/reader_listByPage.action?currentPage=${pageBean.currentPage-1}">前一页</a>] </c:if> <!-- 当前页+1 如果最后一页就没有后一页 --> <c:if test="${pageBean.currentPage!=pageBean.totalPage }"> [<a href="${pageContext.request.contextPath }/reader_listByPage.action?currentPage=${pageBean.currentPage+1}">后一页</a> </c:if> </div></body>
阅读全文
0 0
- SSH中分页问题
- ssh中分页
- SSH中分页的实现
- ssh中实现分页方法
- SSH框架中 分页显示数据Demo
- ssh-hibernate中分页的展示
- [ssh]关于ssh中查询并分页方法的记录
- SSH分页
- ssh分页
- SSH分页
- SSH分页
- SSH分页
- SSH分页
- SSH分页
- ssh分页
- SSH分页
- ssh分页
- SSH分页
- [Zabbix] MySQL 监控
- 安卓开发 Time-Selector时间选择器
- 一篇非常有用的文章-《台湾清华彭明辉教授的研究生手册》
- python 在linux中把doc转换为docx格式文件(支持word97和word2003)
- Mac 下安装python PIL
- ssh中分页
- AndroidStudio 通过svn 主干代码合并到分支代码,分支代码合并到主干代码
- Qt动态加载动态库
- Scrapy爬虫(二)——自定义Item和代理访问的爬虫
- html.replace is not a function
- 最长上升子序列 HDU 1025 Constructing Roads In JGShining's Kingdom
- 数据结构基础 排序
- 子网掩码
- Makefile简易教程