自己创建的page类
package com.baizhi.entity;
public class Page {
//当前页起始页
private int pageBegin;
//当前页末端页
private int pageEnd;
//总条数
private int totalCount;
//总页数
private int pageCount;
//每页的条数
private int pageNum;
//当前页数
private int pageIndex;
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageBegin() {
//当前页数*每页条数-(每页条数-1)
pageBegin = (pageIndex-1) * pageNum+1;
if (pageBegin<1) {
pageBegin = 1;
return pageBegin;
} else {
return pageBegin;
}
}
public void setPageBegin(int pageBegin) {
this.pageBegin = pageBegin;
}
public int getPageEnd() {
//当前页的最后页数
pageEnd = pageNum * pageIndex;
return pageEnd;
}
public void setPageEnd(int pageEnd) {
this.pageEnd = pageEnd;
}
public int getTotalCount() {
return totalCount;
}
public void setTotalCount(int totalCount) {
this.totalCount = totalCount;
}
public int getPageCount() {
//总页数 = 如果总条数
if (totalCount%pageNum==0) {
pageCount = totalCount/pageNum;
} else {
pageCount = totalCount/pageNum+1;
}
return pageCount;
}
public void setPageCount(int pageCount) {
this.pageCount = pageCount;
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public Page() {
super();
// TODO Auto-generated constructor stub
}
//构造 参数列表 为 :每页user数 当前页数
public Page(int pageNum, int pageIndex) {
super();
this.pageNum = pageNum;
this.pageIndex = pageIndex;
}
@Override
public String toString() {
return "Page [pageBegin=" + pageBegin + ", pageEnd=" + pageEnd
+ ", totalCount=" + totalCount + ", pageCount=" + pageCount
+ ", pageNum=" + pageNum + ", pageIndex=" + pageIndex + "]";
}
}
在各个层的使用
mapper文件的SQL语句
<!--分页展示-->
<select id="findAllByPage" resultType="product" parameterType="Page">
select p1.* from
(select p.*,ROWNUM r from SHOP_PRODUCT p)p1
where p1.r between #{pageBegin} and #{pageEnd}
</select>
dao层接口
List<Product> findAllByPage(Page page);
service层的使用
@Override
public List<Product> findAll(Page page) {
//查询所有图书的数量
Integer count = productDAO.findCount();
page.setTotalCount(count);
List<Product> products = productDAO.findAllByPage(page);
return products;
}
controller层的使用
@RequestMapping("showAll")
public String showAll(Page page, Model model) {
List<Product> products = null;
if (page==null) {
//没创过
Page page1 = new Page(2, 1);
products = productService.findAll(page1);
} else {
//声明 每页有多少user
page.setPageNum(2);
System.out.println("当前页数" + page.getPageIndex());
products = productService.findAll(page);
}
System.out.println(products);
model.addAttribute("products",products);
model.addAttribute("page",page);
return "productlist";
}
页面分页展示
<ul class="pagination">
<c:if test="${requestScope.page.pageIndex >1}">
<li> <a href="${pageContext.request.contextPath}/product/showAll?pageIndex=${requestScope.page.pageIndex-1}">上一页</a></li>
</c:if>
<li><a href="javaScript:void(0)">当前页:${requestScope.page.pageIndex}</a></li>
<c:if test="${requestScope.page.pageIndex < requestScope.page.pageCount}">
<li><a href="${pageContext.request.contextPath}/product/showAll?pageIndex=${requestScope.page.pageIndex+1}">下一页</a></li>
</c:if>
</ul>
注意
自己封装的page实体类,利用page中成员变量的set和get 方法,利用page的构造方法设置自己分页查询的总条数和每页展示的数量,即可对page中各个属性进行赋值。