分页的几个重要参数:
(1):当前页页号 pageNo > 1 2 3 4 5
(2):每一页的数据大小 pageSize > 例如:查看15条记录
(3):查询数据的总记录数 pageCount > 例如:总共查出61条记录
(4):开始行,查询当前页的开始的那一行记录 startRow > 例如:当前页为第2页,每次查询15条记录,那么第二页的开始行为16
注:计算开始行 > >> (pageNo - 1)*pageSize
代码:
(1):bean
/*************************page****************************/
//页号
private Integer pageNo = 1;//int
//开始行
private Integer startRow;//null
//每页数
private Integer pageSize = 10;
public Integer getStartRow() {
return startRow;
}
public void setStartRow(Integer startRow) {
this.startRow = startRow;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
//计算一次开始行
this.startRow = (pageNo - 1)*pageSize;
this.pageSize = pageSize;
}
public Integer getPageNo() {
return pageNo;
}
public void setPageNo(Integer pageNo) {
//计算一次开始行
this.startRow = (pageNo - 1)*pageSize;
this.pageNo = pageNo;
}
(2):mapper.xml
<!-- limit -->
<sql id="blogLimit">
<if test="startRow != null">
limit #{startRow},#{pageSize}
</if>
</sql>
(3):service
public Pagination selectAllBlogOrderby(Article article) {
//1:起始页 startRow = (pageNo - 1)*pageSize
//2:每页数
//3:总记录数
Pagination pagination = new Pagination(article.getPageNo(), article.getPageSize(),articleMapper.selectAllBlogCount());
pagination.setList(articleMapper.selectAllBlogOrderby(article));
return pagination;
}
(4):controller
@RequestMapping(value = "/blog/toRecommend.do")
public String toRecommend(Integer pageNo,ModelMap model){
Article article = new Article();
//页号
article.setPageNo(Pagination.cpn(pageNo));
//每页数
article.setPageSize(15);
//分页对象
Pagination pagination = blogService.selectAllBlogOrderby(article);
String url = "/csdn/blog/toRecommend.do";
StringBuilder params = new StringBuilder();
pagination.pageView(url, params.toString());
model.addAttribute("pagination", pagination);
return "sort";
}
(5):jsp页面
<nav aria-label="Page navigation">
<ul class="pagination">
<c:forEach items="${pagination.pageView }" var="page">
${page }
</c:forEach>
</ul>
</nav>