基本的な検索機能を備えたサイトを作っています。クエリには少し情報が含まれているのでcase class Query
、検索情報を含める必要があります。結果が多いかもしれないので、改ページをサポートする必要があります。
フォームの送信を処理する方法は次のとおりです。ページをブックマークできるように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]
です。