私は基本的な検索機能を備えたサイトを作っています。クエリには情報が含まれているため、検索情報を含めるにはcase class Query
があります。多くの結果があるかもしれないので、ページネーションをサポートする必要があります。Scala Play 2.0 Frameworkでのフォーム提出とページネゴシエーションの検索
ここにフォームの送信を処理するメソッドがあります。ページがブックマーク可能になるようにGETを使用します。
GET /search controllers.Application.submit
def submit = Action { implicit request =>
searchForm.bindFromRequest.fold(
errors => BadRequest(views.html.index(errors)),
query => doSearch(query, 0))
}
ページネーションをサポートしたいときに問題が発生します。 URLが変更されず、&page=i
パラメータだけが追加されることをお勧めします。しかし、おそらくコントローラのsubmit
アクションを元に戻したくないかもしれません(しかし、私はここで間違っているかもしれません)。
どうすればよいですか?ページ分割のための別ルートがある場合は、Query
オブジェクトを渡すことができますか、すべてのパラメータを分割する必要がありますか?
私の考えは私のページネーションリンクは次のようなURLに行くだろうということです。もちろん
@{Application.search(query, pageNo)}
それはplay.api.mvc.Request[play.api.mvc.AnyContent]
を期待するので、私はちょうど私のフォーム送信アクションにこれを提出することはできません。