[英]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);
}
视图是:
和控制器是:
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.