分页问题和解决
2017-10-29 15:41
127 查看
分页一般分为三步:
前端传入查询条件(pagesize,currentPage,id)等
调用Dao方法,数据库查询
将查寻结果的数据封装到PageBean中集合,返回前端显示
常见的问题有:
初次访问,currentPage=null,所以执行第二步操作时必须要将赋值currentPage=1,否则会抛出异常NullPointException
第三步,前台展示数据时,若currentPage大于totalPage时,要控制显示效果,给予好的用户体验。
解决方法再后面贴出,请往下看
分页的JavaBean:
问题一解决方案:
通过创建Page Bean对象的构造函数,处理current Page=null的情况
问题二解决方案:
利用Jstl标签库提供的 < c:choose>标签,详细用法参照:
http://www.runoob.com/jsp/jstl-core-choose-tag.html
前端传入查询条件(pagesize,currentPage,id)等
调用Dao方法,数据库查询
将查寻结果的数据封装到PageBean中集合,返回前端显示
常见的问题有:
初次访问,currentPage=null,所以执行第二步操作时必须要将赋值currentPage=1,否则会抛出异常NullPointException
第三步,前台展示数据时,若currentPage大于totalPage时,要控制显示效果,给予好的用户体验。
解决方法再后面贴出,请往下看
分页的JavaBean:
package cn.edu.hgu.model; import java.util.List; public class PageBean<Book> { //当前页 private Integer currentPage; //每页显示多少条 private Integer pageSize=5; //一共有多少条数据 private Integer totalCount; //一共有多少页 private Integer totalPage; //用来装每页的数据 private List<Book> pageData; //调用构造方法,当页面初始化时currentpage=1 public PageBean(Integer currentPage) { super(); if(currentPage==null){ this.currentPage=1; }else{ this.currentPage = currentPage; } } public Integer getCurrentPage() { return currentPage; } public void setCurrentPage(Integer currentPage) { this.currentPage = currentPage; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalCount() { return totalCount; } public void setTotalCount(Integer totalCount) { this.totalCount = totalCount; } public Integer getTotalPage() { if (totalCount % pageSize == 0) { totalPage = totalCount / pageSize; } else { totalPage = totalCount / pageSize + 1; } return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } public List<Book> getPageData() { return pageData; } public void setPageData(Li c1f0 st<Book> pageData) { this.pageData = pageData; } }
问题一解决方案:
//此处传currentPage pageBean1 = new PageBean<>(this.currentPage); pageBean1.setPageData(indexService.findBookById(pageBean1.getCurrentPage(), pageBean1.getPageSize(),model.getId()));
通过创建Page Bean对象的构造函数,处理current Page=null的情况
问题二解决方案:
利用Jstl标签库提供的 < c:choose>标签,详细用法参照:
http://www.runoob.com/jsp/jstl-core-choose-tag.html
<c:choose> <c:when test="${pageBean1.currentPage>=pageBean1.totalPage}"> //若当前页大于总页数,显示这个 第${pageBean1.totalPage}页/共${pageBean1.totalPage}页 </c:when> <c:otherwise> //否则显示这个 第${pageBean1.currentPage}页/共${pageBean1.totalPage}页 </c:otherwise> </c:choose>
相关文章推荐
- 分页显示问题的解决方法(jsp,sqlserver,mysql,oracle)
- 解决电子书App里超长字符串分页问题的代码
- 解决FlexPaper分页分段加载问题
- 用视图+存储过程解决复杂查询的排序分页问题
- oracle 分页问题解决方案
- oracle分页查询数据重复问题的解决
- 一个奇葩的oracle分页问题,已经知道解决办法,但是不晓得产生问题的原音~
- 解决GridView导出Excel后,分页,排序,中文乱码的问题
- 解决MVC下分页显示的问题
- 分页显示问题的解决方法(jsp,sqlserver,mysql,oracle)
- sql server 2005 中的利用ROW_NUMBER() 解决数据分页问题
- php 分页显示数据 post参数传递问题解决方法
- 【转载】解决FlexPaper分页分段加载问题
- 关于coolite grid 存储过程分页的问题,忘大虾解决...
- dwz分页组件中,一个奇怪的翻页问题的解决
- 在union all的视图中怎么解决分页问题
- 网页开发入门之解决数据分页问题
- ibatis处理sybase分页的问题(还没有解决)
- 存储过程分页的注入问题以及解决
- Oracle Order By后导分页数据重复问题解决办法。