gpt4 book ai didi

Java 分页器

转载 作者:搜寻专家 更新时间:2023-11-01 01:55:30 24 4
gpt4 key购买 nike

我正在用 play 2 和 java 编写小型网络应用程序。我有实体列表,现在我要把它们分成几页。我从 Twitter Bootstrap 中获取分页组件,使我的数据库查询返回实体页面以及..我应该使用哪种方式来构建页面导航器?

我的意思是:例如,我总共有 20 页,将显示第 12 页。我有 5 个位置来显示每页按钮。是否有一些库或片段来生成类似的东西:1 .. 11 12 13 .. 20. 我知道这并不难,我已经在我以前的项目中实现了它......但是如果有一个 jar 可以为我解决这个问题会很酷。有什么解决办法吗?

最佳答案

我可以把我的东西分享给你,我也在用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()));
}
}

我的服务返回这些对象之一,在我的模板中我有一个寻呼机标签

@(pager:models.helper.Pager[_])
<div class="pagination">
<ul>
<li class="prev@if(pager.isFirst){ disabled}">
<a href="@pager.getPreviousUrl">&larr; 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 &rarr;</a>
</li>
</ul>
</div>

模板 url 将像这样构建 (scala)第一个参数是“resultsPerPage”,第二个参数是实际的“页面”

pager.urlTemplate = routes.Application.myAction(-1, -2).url

-1 和 -2 参数有点难看,但直到现在我还没有找到更好的解决方案

关于Java 分页器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10878216/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com