怎么在Java项目中实现一个分页功能
怎么在Java项目中实现一个分页功能?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
创新互联专业为企业提供临海网站建设、临海做网站、临海网站设计、临海网站制作等企业网站建设、网页设计与制作、临海企业网站模板建站服务,十年临海做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
分页对象
public class PageUtils implements Serializable { /** * */ private static final long serialVersionUID = -5247614532234782640L; public final static String PAGE = "page"; public final static String PAGE_NO = "pageno"; public final static String PAGE_SIZE = "pagesize"; private long pageSize=10;//每页显示记录数 private long firstResult=0;//当页第一条记录号 private long totalCount;//总记录数 private long totalPage;//总页码 private long pageNo=1;//当前页码 private List> sumData;//此集合可用来保存 合计数据 private List> data;//查询结果 public long getPageSize() { return pageSize; } public void setPageSize(long pageSize) { this.pageSize = pageSize; } public long getFirstResult() { if(pageNo>0){ firstResult=pageSize * (pageNo -1); }else{ firstResult = 0; } return firstResult; } public long getNextPageResult(){ if(pageNo>0){ return pageSize*(pageNo-1); }else{ return pageNo; } } public void setFirstResult(long firstResult) { this.firstResult = firstResult; } public long getTotalCount() { return totalCount; } public void setTotalCount(long totalCount) { this.totalCount = totalCount; totalPage = this.totalCount/pageSize; if (totalPage == 0 || totalCount % pageSize != 0) { totalPage++; } } public long getTotalPage() { return totalPage; } public void setTotalPage(long totalPage) { this.totalPage = totalPage; } public long getPageNo() { return pageNo; } public void setPageNo(long pageNo) { this.pageNo = pageNo; } public List> getData() { return data; } public void setData(List> data) { this.data = data; } /** * 是否第一页 */ public boolean isFirstPage() { return pageNo <= 1; } /** * 是否最后一页 */ public boolean isLastPage() { return pageNo >= getTotalPage(); } /** * 下一页页码 */ public long getNextPage() { if (isLastPage()) { return pageNo; } else { return pageNo + 1; } } /** * 上一页页码 */ public long getPrePage() { if (isFirstPage()) { return pageNo; } else { return pageNo - 1; } } public PageUtils(){} public PageUtils(long pageNo){ this.pageNo=pageNo; } public PageUtils(long pageNo,long pageSize){ this.pageNo=pageNo; this.pageSize = pageSize; } public List> getSumData() { return sumData; } public void setSumData(List> sumData) { this.sumData = sumData; } }
查询的数据实体
在查询的实体里添加页码和每页显示条数参数;
private int pageSize; //每页显示的条数 private int pageNo; //当前页码 public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; }
控制层Controller
@RequestMapping("/list") public String list(Model model,ChannelValueInfoView input) { // input:传入的参数为对象 PageUtils page=new PageUtils(); //如果传入的当前条数为0,则赋予值(首次查询不带参); if(input.getPageSize()==0){ //当前页码第一页 input.setPageNo(1); //每页显示条数,当前每页显示10条数据; input.setPageSize(10); } page.setPageNo(input.getPageNo()); page.setPageSize(input.getPageSize()); //核心分页代码 PageHelper p=new PageHelper(); Pagel=p.startPage(input.getPageNo(),input.getPageSize()); //紧跟着的第一个select查询将会被分页 channelValueService.getChannelValueInfoViewList(input); model.addAttribute("input", input); page.setData(l); page.setTotalCount(l.getTotal()); model.addAttribute("page", page); return "index"; }
页面处理
//循环穿过来的PAGE.data数据----------