1.简单思路
这是最常见的分页格式,分析一下我们需要传什么数据给前端吧! 首先是左边下面的总共几条记录,然后是右边的当前页面,然后就是一些你所需要展示的数据。对了每页显示多少条是不也得控制下,下面的显示页码数,这里显示了五条(1,2,3,4,5),你也可以选择只显示三条(1,2,3)。
2.构造传给页面的POJO
packagecom.Dy.Pojo;importjava.util.List;/*** 分页信息
*
*@author小丁同学
**/
public class PageInfo{//你页面需要展示的集合
private Listlist;//显示的总记录数
privateInteger totalNum;//总页数
privateInteger totalPage;//当前页
privateInteger currentPage;//每页显示的数目 (为了防止硬编码可以写在配置文件中)
privateInteger pageSize;//下面两个就是显示的页码 比如start为1 pageNo为5,那么显示的页码数就是1,2,3,4,5
privateInteger start;privateInteger pageNo;publicPageInfo(Integer totalNum, Integer currentPage, Integer pageSize, Integer pageNo) {this.totalNum =totalNum;this.currentPage =currentPage;this.pageSize =pageSize;/*this.pageNo = pageNo;*/
//计算总页数
if (totalNum % this.pageSize == 0)this.totalPage = totalNum / this.pageSize;else
this.totalPage = (totalNum / this.pageSize) + 1;this.start =currentPage;//比如设置了5条,如果总页数都只有四条,那么肯定都是全是显示哦
if (pageNo+currentPage-1>=this.totalPage)this.pageNo =pageNo;else this.pageNo = this.totalPage-currentPage+1;
}public ListgetList() {returnlist;
}public void setList(Listlist) {this.list =list;
}publicInteger getTotalNum() {returntotalNum;
}public voidsetTotalNum(Integer totalNum) {this.totalNum =totalNum;
}publicInteger getTotalPage() {returntotalPage;
}public voidsetTotalPage(Integer totalPage) {this.totalPage =totalPage;
}publicInteger getCurrentPage() {returncurrentPage;
}public voidsetCurrentPage(Integer currentPage) {this.currentPage =currentPage;
}publicInteger getPageSize() {returnpageSize;
}public voidsetPageSize(Integer pageSize) {this.pageSize =pageSize;
}publicInteger getStart() {returnstart;
}public voidsetStart(Integer start) {this.start =start;
}publicInteger getPageNo() {returnpageNo;
}public voidsetPageNo(Integer pageNo) {this.pageNo =pageNo;
}
}
packagecom.Dy.Pojo;public classUser {privateInteger id;privateString username;privateString password;publicInteger getId() {returnid;
}public voidsetId(Integer id) {this.id =id;
}publicString getUsername() {returnusername;
}public voidsetUsername(String username) {this.username =username;
}publicString getPassword() {returnpassword;
}public voidsetPassword(String password) {this.password =password;
}
}
3.构造Dao(可以使用逆向工程,这里为了展示就手打接口和xml了)
packagecom.Dy.Mapper;importjava.util.List;importcom.Dy.Pojo.User;public interfaceUserMapper {public ListfindAllUsers();
}
/p>
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
select * from user
4.构造Service
packagecom.Dy.Service;importcom.Dy.Pojo.PageInfo;importcom.Dy.Pojo.User;public interfaceUserService {public PageInfofindAllUsersByPage(Integer currentPage,Integer pageSize);
}
packagecom.Dy.Service;importjava.util.List;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Service;importcom.Dy.Mapper.UserMapper;importcom.Dy.Pojo.PageInfo;importcom.Dy.Pojo.User;
@Servicepublic class UserServiceImpl implementsUserService {
@AutowiredprivateUserMapper usermapper;
@Overridepublic PageInfofindAllUsersByPage(Integer currentPage, Integer pageSize) {
List users =usermapper.findAllUsers();
PageInfo pageInfo = new PageInfo<>(users.size(), currentPage, pageSize, 5);//判断是否是最后一页,如果最后一页就显示最后一页的几条,不是最后一页就显示pageSize条
if(currentPage==pageInfo.getTotalPage())
pageInfo.setList(users.subList((currentPage-1)*pageSize, users.size()));elsepageInfo.setList(users.subList((currentPage-1)*pageSize, (currentPage-1)*pageSize+pageSize));returnpageInfo;
}
}
5.JSP部分
«${i }»