1. 分页SQL (rownum + 子查询):
"select * from (select e.id,e.name,e.salary,e.borndate,e.phone,e.email,d.deptid,d.deptname,rownum as RN from t_employee e left join t_department d on e.deptid=d.deptid) t where t.RN>=? AND t.RN<=?"
2. 封装://传递对象
I. 总条数(查询)
totalRow
II. 总页数(计算) totalRow % totalPage == 0 ? totalRow / totalPage : totalRow / totalPage + 1
totalPage
III. 单页显示条数(设定)
pageSize
IV. 访问的页码(获取)
pageIndex(每次请求+1 / -1)
PageUtil源代码:仅供参考
public class PageUtil { private Integer totalRow; private Integer pageIndex; private Integer pageSize; private Integer totalPage; //设置默认当前页与pageSize public PageUtil() { this(1,5); } public PageUtil(Integer pageIndex, Integer pageSize) { super(); this.pageIndex = pageIndex; this.pageSize = pageSize; } //设置总行数、计算总页数 public void setTotalRow(Integer totalRow) { this.totalRow = totalRow; Integer count=this.totalRow % this.pageSize ==0? this.totalRow/this.pageSize:this.totalRow/this.pageSize+1; this.setTotalPage(count); } public Integer getPageIndex() { return pageIndex; } public void setPageIndex(Integer pageIndex) { this.pageIndex = pageIndex; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalPage() { return totalPage; } public void setTotalPage(Integer totalPage) { this.totalPage = totalPage; } //获得起始行 public Integer getFirst(){ return (this.pageIndex-1)*this.pageSize+1; } //获得最后一行 public Integer getLast(){ return this.pageIndex*this.pageSize; } }
Action代码:
JSP页面绑定
<s:if test="page.pageIndex ==1" > 上一页<br/> </s:if> <s:else> <a href="<s:url namespace='/employee' action='showAll'/>?page.pageIndex=<s:property value='page.pageIndex-1' />" >上一页</a><br/> </s:else> <s:if test="page.pageIndex >= page.totalPage" > 下一页<br/> </s:if> <s:else> <a href="<s:url namespace='/employee' action='showAll'/>?page.pageIndex=<s:property value='page.pageIndex+1' /> " >下一页</a><br/> </s:else>