2014-09-03 50 views
0

我使用Play框架2.3.3。在頁面上,我有一個實體列表,旁邊有使用標準遊戲表單綁定的過濾器表單,它的作用就像一個魅力。但是現在我想在列表下添加分頁。當用戶點擊列表下方的尋呼機鏈接('next'或'prev')時,問題是保留表單參數。尋呼機與Play中的搜索表單一起使用! 2.3.3

類似的例子'計算機數據庫'避免了表單的使用並處理像簡單方法參數這樣的參數。但是我的表單非常複雜:它綁定到case class SearchForm(purposeId: Option[Long], placeIds: Seq[Long], since: Option[Date], till: Option[Date])

在沒有JS的情況下處理這種情況的最佳方法是什麼?

+0

是否使用了POST來搜索或查詢?這聽起來像POST。不要使用POST,使用GET,並將參數放入由路由器提取的查詢參數中。然後,您可以使用反向路由器輕鬆生成下一個/上一個鏈接,如下面的答案。 – 2014-09-03 10:27:17

回答

0

simplePaginator.scala.html(僅用於測試)

@(currentPage: Int, lastPage: Int, pageLink: Int => Call, width: Int = 5) 

    @link(index: Int) = { 
     <a href="@pageLink(index)">@{ 
      index + 1 
     }</a> 
    } 


    @if(lastPage > 0) { 
     <div class="pager"> 
      @link(currentPage - 1) 
      @link(currentPage + 1) 
      @link(lastPage) 
     </div> 
     <br> 
    } 

你必須提供pageLink功能。

GET  /page   @controllers.PageController.index(pageIndex:Int ?= 0) 
GET  /page/:pageIndex   @controllers.PageController.index(pageIndex:Int) 

而且撥打:

@simplePaginator(currentPage,lastIndex,controllers.PageController.index) 
+0

按'prev' /'next'我的意思是分頁鏈接下面的列表,而不是瀏覽器按鈕。 – viator 2014-09-03 09:32:47

+0

我改爲分頁。這只是簡單的prev/next。您可以使用二分查找創建更復雜的分頁工具欄。如果你希望我可以添加實現的例子。 – 2014-09-08 20:46:14