2

基本的な検索機能を備えたサイトを作っています。クエリには少し情報が含まれているので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]です。

4

1 に答える 1

3

独自のオブジェクトを作成する場合は、Queryオブジェクトを渡すことができますQueryBindersPlayにあるものをチェックして、その方法を確認できます。オブジェクト(暗黙のオブジェクト)をファイルQueryBindersの変数に追加することを忘れないroutesImportでください。Build.scala

もう1つの方法は、コンピューターサンプル(samplesPlay Frameworkリリースのフォルダー内)のページネーションに従うことです。これは、GET要求といくつかのパラメーターを使用してページ間を移動します。

于 2012-05-09T20:59:45.813 に答える