Maison  >  Article  >  Java  >  Partager un exemple simple d'implémentation de la fonction de pagination en Java

Partager un exemple simple d'implémentation de la fonction de pagination en Java

黄舟
黄舟original
2017-08-08 10:22:30966parcourir

Cet article présente principalement en détail la fonction de pagination simple en Java, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

L'exemple de cet article partage avec vous la fonction de pagination en Java. le code est pour votre référence. Le contenu spécifique est le suivant

Il n'est pas nécessaire de modifier le formulaire SQL pour interroger
Interrogez directement toutes les données et affichez automatiquement les données en fonction de la page ; numéro ;

Objet de pagination


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;
  }

}

Entité de données interrogée

Ajouter numéro de page et nombre d'éléments affichés par paramètre de page ;


private int pageSize;  //每页显示的条数
private int pageNo;   //当前页码
public int getPageSize() {
  return pageSize;
}
public void setPageSize(int pageSize) {
  this.pageSize = pageSize;
}

Contrôleur de couche de contrôle


@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";
  }

Traitement des pages


//循环穿过来的PAGE.data数据
<tr th:each="ts : ${page.data}">
<td th:text="${ts.channelValueName}"></td>


----------
<form id="content_form" action="/channelValue/list" method="post" >
  <p>
    总数:<span id="totalCount" th:text="${page.totalCount}">0</span>
  </p>
  <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()"><</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()">></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($(&#39;#beginRow&#39;).html());
    if (beginRow - 1 > 0) {
      onList(beginRow - 1);
    }

  }
  function onNext() {
    var beginRow = parseInt($(&#39;#beginRow&#39;).html());
    var totalCount = parseInt($(&#39;#totalCount&#39;).html());
    var pageSize = parseInt($(&#39;#pageSize&#39;).val());
    if (parseInt(totalCount / pageSize + 1) > beginRow + 1) {
      onList(beginRow+1);
    }
  }
  function onLast() {
    var totalCount = parseInt($(&#39;#totalCount&#39;).html());
    var pageSize = parseInt($(&#39;#pageSize&#39;).val());
    onList(parseInt(totalCount / pageSize + 1) - 1);
  }
  function onList(pageNo) {
    if (pageNo == 0)
      pageNo = 1;
    $(&#39;#pageNo&#39;).val(pageNo);
    $("#content_form").submit();
  }
</script>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn