文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么在Java项目中实现一个分页功能

2023-05-31 07:54

关注

怎么在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<ChannelValueInfoList> 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数据<tr th:each="ts : ${page.data}"><td th:text="${ts.channelValueName}"></td>----------<form id="content_form" action="/channelValue/list" method="post" >  <div>    总数:<span id="totalCount" th:text="${page.totalCount}">0</span>  </div>  <ul class="pagination">    <li class="disabled">      <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onFirst()">首页</a>    </li>    <li class="disabled">      <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onPre()">&lt;</a>    </li>    <li class="active">      <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" >        <span id="beginRow" th:text="${page.pageNo}">0</span>      </a>    </li>    <li class="disabled">      <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onNext()">&gt;</a>    </li>    <li class="disabled">      <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" onclick="onLast()">尾页</a>    </li>  </ul></for  m>----------<script>  function onFirst() {    onList(1);  }  function onPre() {    var beginRow = parseInt($('#beginRow').html());    if (beginRow - 1 > 0) {      onList(beginRow - 1);    }  }  function onNext() {    var beginRow = parseInt($('#beginRow').html());    var totalCount = parseInt($('#totalCount').html());    var pageSize = parseInt($('#pageSize').val());    if (parseInt(totalCount / pageSize + 1) > beginRow + 1) {      onList(beginRow+1);    }  }  function onLast() {    var totalCount = parseInt($('#totalCount').html());    var pageSize = parseInt($('#pageSize').val());    onList(parseInt(totalCount / pageSize + 1) - 1);  }  function onList(pageNo) {    if (pageNo == 0)      pageNo = 1;    $('#pageNo').val(pageNo);    $("#content_form").submit();  }</script>

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯