在Play框架scala中使用ActionFilter编写Action(BodyParser)

时间:2017-05-09 02:19:36

标签: scala function playframework playframework-2.0 function-composition

我有一个播放框架应用程序和一个有问题的操作。我尝试使用parse.form解析请求正文,然后针对该已解析的正文运行ActionFilter

到目前为止,我有类似的东西

object ModelValidationAction extends ActionFilter[Request[MyModel]]{
  def filter[A <: MyModel](request: Request[A]) = ???
}

def routePointsHere = (Action(parse.form(myModelForm)) andThen ModelValidationAction) { (request: Request[MyModel]) => ??? }

然而IDEA给了我错误提示

  

预期行动[MyModel] =&gt; NotInferredA,实际的ModelValidationAction.type

并且编译器告诉我

  

...方法的缺失参数列表适用于特征ActionBuilder
  [错误]未应用的方法仅在需要函数类型时转换为函数。   [错误]您可以通过撰写apply _apply(_)(_)代替apply来明确转换此内容。

所以我可以认为问题是方法apply[A](bodyParser: BodyParser[A])(block: R[A] => Result): Action[A]围绕第二个参数列表没有被填充的事实,但我不确切地知道语言在这里的行为。

我的(完全没有根据的)假设Action(parse.form(myModelForm))将成为Request[MyModel] => Result,而调用andThen会返回相同的内容。

关于我错过的内容的任何指示?谢谢!

0 个答案:

没有答案
相关问题