如何在play框架中使用java进行分页?

如何在play框架中使用java进行分页?,java,scala,playframework,pagination,playframework-2.0,Java,Scala,Playframework,Pagination,Playframework 2.0,我正在我的web应用程序中进行分页,那么如何做到这一点呢 我想要的是:我想显示所有的用户管理员 我浏览了这个play framework计算机应用程序,但我不想要这种分页 计算机-数据库应用程序分页为: 但我想像谷歌一样: 我的查询与计算机数据库应用程序相同: 用户模型部分 public static Page<User> page(int page, int pageSize, String sortBy, String order, String filter) {

我正在我的web应用程序中进行分页,那么如何做到这一点呢

我想要的是:我想显示所有的用户管理员

我浏览了这个play framework计算机应用程序,但我不想要这种分页
计算机-数据库
应用程序分页为:

但我想像谷歌一样:

我的查询与
计算机数据库
应用程序相同:

用户模型部分

public static Page<User> page(int page, int pageSize, String sortBy, String order, String filter) {
        return 
            find.where()
                .ilike("name", "%" + filter + "%")
                .orderBy(sortBy + " " + order)
                .findPagingList(pageSize)
                .getPage(page);
    }

给我一些关于分页的想法。

看看吧,它是用scala编写的,但用java可以轻松完成。

嗯。。。最简单的方法是检查它有ie。
getTotalPageCount()
方法,这样您就可以轻松地从0迭代到页面计数,为每个结果页面生成链接(删除上一个/下一个箭头以保持样本干净…)



    @对于(i您可以在游戏中使用分页模块,

    这是我的分页示例代码:

    这里

    计数是数据库中的总数据

    skip是调用中跳过的数据量

    lengthOfElement是已提取的数据量

    collect是每个查询最多将拉入多少数据

     @(count:Int, skip:Int, lengthOfElement:Int, collect:Int)
    
    <div class="row">
        <div class="col-sm-12 col-md-5">
            <div class="dataTables_info" id="DataTables_Table_0_info" role="status" aria-live="polite">total
                @count
                entries, showing till @{skip+lengthOfElement}th
            </div>
        </div>
        <div class="col-sm-12 col-md-7">
            <div class="dataTables_paginate paging_simple_numbers" id="DataTables_Table_0_paginate">
                <ul class="pagination">
                    <li class="paginate_button page-item  @if(skip==0){disabled}else{}" id="DataTables_Table_0_previous">
                        <a href="@student.routes.AllStudentsController.allStudents(skip-collect)" aria-controls="DataTables_Table_0" data-dt-idx="0" tabindex="0"
                           class="page-link">
                            Previous
                        </a>
                    </li>
    
                    @for(i<-0 until count/collect+(if(count%collect!=0){1}else{0})){
                    <li class="paginate_button page-item @if(skip==i*collect){active}else{}">
                        <a href="@student.routes.AllStudentsController.allStudents(i*collect)" aria-controls="DataTables_Table_0" data-dt-idx="1" tabindex="0"
                           class="page-link">
                            @{i+1}
                        </a>
                    </li>
                    }
    
                    <li class="paginate_button page-item  @if(lengthOfElement<collect || skip+collect==count){disabled}else{}" id="DataTables_Table_0_next">
                        <a href="@student.routes.AllStudentsController.allStudents(skip+collect)" aria-controls="DataTables_Table_0" data-dt-idx="3" tabindex="0"
                           class="page-link">
                            Next
                        </a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
    
    @(计数:整数,跳过:整数,长度:整数,收集:整数)
    全部的
    @计数
    条目,显示到@{skip+lengthOfElement}th
    

    • @对于(我可以告诉我如何获取总页面。这背后的逻辑是什么?@RahulKulhari它只是执行额外的查询,如:
      select count(*)…
      当然,它包含原始版本中的所有条件。您不需要手动执行,所述方法在后台执行。@biesior链接不再工作。请更新它。@saurav确实,从游戏的2.3分支开始,样本已被移除,取而代之的是Activator的模板和/或种子-答案中提到的代码现在可以在
      计算机数据库Scala
      模板中找到。
      public class paging extends Controller {
      
          public static Result pag(int page, String sortBy, String order, String filter) throws ClassNotFoundException, SQLException {
      
      return ok(adm.render(User.page(page, 2, sortBy, order, filter),
                      sortBy, order, filter));
      
          }
      
      <div id="pagination2" class="pagination">
          <ul>
              @for(i <- 0 until currentPage.getTotalPageCount()){
                  <li><a  href="@link(i, null)">@(i+1)</a></li>
              }
          </ul>
      </div>
      
       @(count:Int, skip:Int, lengthOfElement:Int, collect:Int)
      
      <div class="row">
          <div class="col-sm-12 col-md-5">
              <div class="dataTables_info" id="DataTables_Table_0_info" role="status" aria-live="polite">total
                  @count
                  entries, showing till @{skip+lengthOfElement}th
              </div>
          </div>
          <div class="col-sm-12 col-md-7">
              <div class="dataTables_paginate paging_simple_numbers" id="DataTables_Table_0_paginate">
                  <ul class="pagination">
                      <li class="paginate_button page-item  @if(skip==0){disabled}else{}" id="DataTables_Table_0_previous">
                          <a href="@student.routes.AllStudentsController.allStudents(skip-collect)" aria-controls="DataTables_Table_0" data-dt-idx="0" tabindex="0"
                             class="page-link">
                              Previous
                          </a>
                      </li>
      
                      @for(i<-0 until count/collect+(if(count%collect!=0){1}else{0})){
                      <li class="paginate_button page-item @if(skip==i*collect){active}else{}">
                          <a href="@student.routes.AllStudentsController.allStudents(i*collect)" aria-controls="DataTables_Table_0" data-dt-idx="1" tabindex="0"
                             class="page-link">
                              @{i+1}
                          </a>
                      </li>
                      }
      
                      <li class="paginate_button page-item  @if(lengthOfElement<collect || skip+collect==count){disabled}else{}" id="DataTables_Table_0_next">
                          <a href="@student.routes.AllStudentsController.allStudents(skip+collect)" aria-controls="DataTables_Table_0" data-dt-idx="3" tabindex="0"
                             class="page-link">
                              Next
                          </a>
                      </li>
                  </ul>
              </div>
          </div>
      </div>