繁体   English   中英

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

[英]How to do pagination using java in play framework?

我在我的网络应用程序中进行分页 ,所以如何做到这一点?

我想要的是:我想向管理员展示所有用户!

我通过这个游戏框架计算机应用程序计算机数据库,但我不希望这种类型的分页computer -database应用程序分页是:

在此输入图像描述

但我想像谷歌:

在此输入图像描述

我的查询与computer-database应用程序相同:

模型的一部分用户

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

视图是:

adm.scala.html

控制器是:

public static Result enter() {
        Form<Login> loginForm = Form.form(Login.class).bindFromRequest();

        if (loginForm.hasErrors()) {
            return badRequest(logi.render(loginForm));// errorsAsJson());
        }

        if(loginForm.get().email.equals("admin@admin.com") ) {

            return redirect(routes.paging.pag(0, "name", "asc", ""));

        }

paging.java

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

    }

给我一些分页的想法。

您可以在播放时使用paginate模块, 试试这个

看看它http://www.kev009.com/wp/2012/12/reusable-pagination-in-play-2/它是用scala编写的,但只需很少的努力就可以在java中完成

嗯......最简单的方法是检查它拥有的Ebean的Page类API getTotalPageCount()方法,因此您可以轻松地从0迭代到页数 ,为每个结果页面生成链接(删除上一个/下一个箭头以保持样本清洁......)

<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是数据库中的总数据,

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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM