java play Framework pagination/pager를 붙이는 방법
index(Item 일람) 페이지에 pagination을 붙여 봅니다
conf/routes
GET /item/index controllers.ItemController.index(page: Integer = 1)
GET /item/index/:page controllers.ItemController.index(page: Integer)
페이지를 지정하지 않은 경우 첫 페이지에
page를 지정하고 있었을 경우는 그 페이지에 가도록(듯이) 한다.
app/controllers/ItemController.java
public Result index(int page) throws Exception{
PagedList<Item> pagedList= ItemService.getPagedList(page);
List<Item> items = pagedList.getList();
int maxPage = pagedList.getTotalPageCount();
return ok(views.html.item.index.render(items, page, maxPage));
}
int page는 표시할 페이지입니다.
PagedList pagedList= ItemService.getPagedList(page);
List items = pagedList.getList();
해당 페이지에 표시할 항목 목록을 가져옵니다.
getTotalPageCount() 는 마지막 페이지가 몇 페이지인가를 내려주기 때문에
그것을 int maxPage에 넣습니다.
app/models/service/ItemService.java
public static final PagedList<Item> getPagedList(int page){
Item item= new item();
return item.getPagedList(page);
}
item.getPagedList로.
app/models/entity/Item.java
public PagedList<Item> getPagedList(int page) {
int pageSize = 10;
int pageIndex = page - 1;
PagedList<Item> pegedList = Item.find.findPagedList(pageIndex, pageSize)
return pegedList;
}
int pageSize는 한 페이지에 표시할 항목의 수입니다.
int pageIndex는 표시할 페이지입니다.
findPagedList(pageIndex, pageSize)의 pageIndex는 0이 1페이지째이므로
-1 한 것을 넣는다.
이제 pegedList에 해당 페이지에 표시되는 Item 목록이 포함됩니다.
app/views/item/index.scala.html
@(items: List[models.entity.Item], currentPage: Int, maxPage: Int)
@main() {
<div id="main">
<ol class="breadcrumb">
<li class="active">アイテム一覧</li>
</ol>
<div class="list-group">
<p class="list-group-item list-group-item-info">
アイテム
</p>
@for((item) <- items){
<a href="/item/edit/@item.id" class="list-group-item">
@item.name</br>
</a>
}
@pagination(currentPage, maxPage)
</div>
</div>
}
view의 인수는
items(그 페이지에 표시하는 item의 리스트)
currentPage(표시할 페이지)
maxPage(마지막 페이지).
item을 표시한 후
@pagination (currentPage, maxPage)에서
app/views/item/pagination.scala.html을 호출합니다.
전화 방법에 대한 자세한 내용은 여기
app/views/item/pagination.scala.html
@(currentPage: Integer, maxPage: Integer)
<div>
<ul class="pagination">
@if(currentPage == 1) {
<li class="disabled"><span>«</span></li>
} else {
<li><a href="@controllers.routes.ItemController.index(currentPage - 1)">«</a></li>
}
@for(index <- 1 to maxPage) {
@if(currentPage == index) {
<li class="disabled"><span>@index</span></li>
} else {
<li><a href="@controllers.routes.ItemController.index(index)">@index</a></li>
}
}
@if(currentPage == maxPage) {
<li class="disabled"><span>»</span></li>
} else {
<li><a href="@controllers.routes.ItemController.index(currentPage + 1)">»</a></li>
}
</ul>
</div>
pagination의 부분.
max로 1페이지밖에 없으면 <<는 누르지 않게 한다.
페이지만을 반복하여 현재 페이지 수만 숫자를 누를 수 없게 한다.
현재 페이지가 max(마지막 페이지)이면 >>는 누르지 않도록 한다.
이상
Reference
이 문제에 관하여(java play Framework pagination/pager를 붙이는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mint__/items/bebf3d23d08c1e5732fb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)