中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Java項目中實現一個分頁功能

發布時間:2020-12-01 16:36:11 來源:億速云 閱讀:209 作者:Leah 欄目:編程語言

怎么在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項目中實現一個分頁功能問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新乡市| 墨竹工卡县| 阿拉善左旗| 阳原县| 齐河县| 巴东县| 株洲县| 安徽省| 青铜峡市| 江西省| 陆河县| 金坛市| 郎溪县| 台北市| 江永县| 依安县| 中宁县| 建昌县| 德昌县| 绥滨县| 忻城县| 阿克苏市| 平舆县| 惠水县| 城固县| 达拉特旗| 恩施市| 张家界市| 青铜峡市| SHOW| 霍林郭勒市| 盐城市| 宝清县| 庆安县| 沙河市| 大洼县| 吉木乃县| 拜城县| 阆中市| 舒兰市| 张掖市|