如何为Play框架中的Action创建通用挂钩?

时间:2013-10-30 16:38:16

标签: scala playframework-2.0

我想检查请求是否有一个名为callback的查询字符串参数,如果是,我想在函数调用中包装响应(对于jsonp)。

我是scala和play的新手,所以我不确定最好的方法是什么,避免代码重复。

1 个答案:

答案 0 :(得分:2)

您可以使用ActionBuilder创建自定义Action

例如,

import play.api.mvc._

object CallbackAction extends ActionBuilder[Request] {
  def invokeBlock[A](request: Request[A], block: (Request[A]) => Future[SimpleResult]) = {
    request.getQueryString("callback").map { callback =>
      // invoke the function identified by callback
    }
    block(request)
  }
}