Java分页器
我正在用Play2和java编写小型web应用程序。我有实体列表,现在我要把它们分成几页。我从Twitter引导中获取用于分页的组件,进行数据库查询以返回实体页面和。。我应该使用哪种方式构建页面导航器 我的意思是:举例来说,我总共有20页,将展示第12页。我有5个位置显示每页按钮。是否有一些LIB或代码段可以生成如下内容:Java分页器,java,pagination,playframework-2.0,Java,Pagination,Playframework 2.0,我正在用Play2和java编写小型web应用程序。我有实体列表,现在我要把它们分成几页。我从Twitter引导中获取用于分页的组件,进行数据库查询以返回实体页面和。。我应该使用哪种方式构建页面导航器 我的意思是:举例来说,我总共有20页,将展示第12页。我有5个位置显示每页按钮。是否有一些LIB或代码段可以生成如下内容: 1.11 12 13 .. 20我知道这并不难,我已经在我以前的项目中实现了它。。。但是有一个罐子来解决这个问题对我来说是很酷的。有什么解决方案吗?据我所知,模板中不支持分页
1.11 12 13 .. 20我知道这并不难,我已经在我以前的项目中实现了它。。。但是有一个罐子来解决这个问题对我来说是很酷的。有什么解决方案吗?据我所知,模板中不支持分页,但幸运的是,
Ebean
支持分页,所以您只需要在模板中做一些工作
检查一下,页面是为计算机列表实现的(它也使用Twitter引导,所以您只需要复制和粘贴代码)
当然,您也可以在下载到计算机上的Play版本中找到示例应用程序。我可以与您分享我拥有的,我也在使用bootstrap
package models.helper;
import java.util.ArrayList;
import java.util.List;
public class Pager<T> {
public List<T> entities;
public int page;
public int pages;
public String urlTemplate;
public int resultsPerPage;
public List<Integer> getPageList(){
List<Integer> pageList = new ArrayList<Integer>(pages);
for(int i = 1; i<=pages;i++){
pageList.add(i);
}
return pageList;
}
public int getPrevious(){
return page -1;
}
public int getNext(){
return page +1;
}
public boolean isCurrent(Integer page){
return this.page == page - 1;
}
public boolean isLast(){
return page == pages -1;
}
public boolean isFirst(){
return page == 0;
}
public String getUrl(Integer page){
return urlTemplate
.replace("-1", Integer.toString(resultsPerPage))
.replace("-2", Integer.toString(page-1));
}
public String getNextUrl(){
if(isLast()){
return "#";
}
return urlTemplate
.replace("-1", Integer.toString(resultsPerPage))
.replace("-2", Integer.toString(getNext()));
}
public String getPreviousUrl(){
if(isFirst()){
return "#";
}
return urlTemplate
.replace("-1", Integer.toString(resultsPerPage))
.replace("-2", Integer.toString(getPrevious()));
}
}
-1和-2参数有点难看,但直到现在我还没有找到更好的解决方案谢谢,是的,这有一段时间很有用。我构建了这样的东西:>但这并不是我想要的。我仍然想知道为什么没有现成的解决方案。不在游戏框架中,也不在其他任何地方。为什么你认为它应该?尽管Play被称为
web
框架,但这并不意味着它应该提供像CMS一样的即时小部件和代码片段。如果开发人员决定这样做,他们将浪费时间,并用数百个不必要的元素使框架过载。有一大堆现成的CMS,提供模板和所有必需的小部件,Play的目标不是成为其中的一员。顺便说一句,如果你需要构建更好的分页选择器,你需要查看Eben的文档,以了解分页列表查询
(页面参考指南第6.7章:)我不说他们应该,但在我看来,分页并不是很少见的。一些现成的工具可以简化开发人员的生活。我不是说用javascript控制器或类似的东西生成html布局。我只是想找到一个很好的解决方案,生成一个包含正确页码的列表。这不是一个剧本的目标:)我写这篇文章不是因为我想争论——只是我可以看到开发团队的选择,我可以接受,因为我几乎总是同意他们的选择。尽管我不同意你的观点,但我理解你的观点,解决方案之一是创建一个包含公共“小部件集”的模块,并将其发布到某个公共场所,但我很确定开发团队不会对此感兴趣,因为他们关注的是“机制”。因为这不是框架任务的一部分,所以它也应该由社区提供,IMHOOh,谢谢。顺便问一下,寻呼机是什么意思?它就像java的寻呼机?
@(pager:models.helper.Pager[_])
<div class="pagination">
<ul>
<li class="prev@if(pager.isFirst){ disabled}">
<a href="@pager.getPreviousUrl">← Previous</a>
</li>
@for(page <- pager.getPageList){
<li @if(pager.isCurrent(page)){class="active"}>
<a href="@pager.getUrl(page)">@page</a>
</li>
}
<li class="next@if(pager.isLast){ disabled}">
<a href="@pager.getNextUrl">Next →</a>
</li>
</ul>
</div>
pager.urlTemplate = routes.Application.myAction(-1, -2).url