【问题标题】:Search form submission and pagination in Scala Play 2.0 FrameworkScala Play 2.0 框架中的搜索表单提交和分页
【发布时间】:2012-09-09 20:06:25
【问题描述】:

我正在制作一个具有基本搜索功能的网站。查询包含一些信息,所以我有一个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]

【问题讨论】:

    标签: scala playframework playframework-2.0


    【解决方案1】:

    如果您创建自己的QueryBinders,则可以传递 Query 对象。您可以查看the ones in Play 了解如何操作。请记住将您的对象(具有隐式QueryBinders 的对象)添加到Build.scala 文件中的变量routesImport

    另一种选择是遵循计算机示例的分页(在 Play Framework 版本的 samples 文件夹中),它使用 GET 请求和一些参数在页面之间移动。

    【讨论】:

      猜你喜欢
      • 2012-02-20
      • 2013-05-27
      • 1970-01-01
      • 2014-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-20
      相关资源
      最近更新 更多