怎么在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();   
    Page l=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数据




----------

  
    总数:0   
              首页                 <                          0                        >                 尾页         ----------

关于怎么在Java项目中实现一个分页功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。


当前名称:怎么在Java项目中实现一个分页功能
转载注明:http://ybzwz.com/article/ijchjo.html