玩框架迁移错误

时间:2013-04-15 22:27:23

标签: playframework migration playframework-2.0 playframework-2.1

从Play 2.0.4迁移到Play 2.1.1后,出现以下错误:

[error] /home/xxx/project/app/controllers/Application.scala:489: type mismatch;
[error]  found   : play.api.data.Form[contents.Entry]
[error]  required: play.data.Form[contents.Entry]
[error]     Ok(views.html.shareKnowledge(contentForm, loadEntries(Option(request.user.id), Option(request.user.id), None, None), Map("deleteButton"->"show")))

HTML模板中的相应行是

@(contentForm: Form[contents.Entry], entries: Array[contents.Entry], streamDisplayOptions: Map[String,String])

我只是传了一张表格......

我看了http://www.playframework.com/documentation/2.1.0/Migration 但我仍然不知道如何解决它。

1 个答案:

答案 0 :(得分:6)

在迁移过程中看起来似乎是Java和Scala的混合。

play.api.data.Form[contents.Entry]用于Scala。

play.data.Form[contents.Entry]用于Java。

如果你跟着migration guide,你可能会这样做:

val appDependencies = Seq(
   javaCore, javaJdbc, javaEbean
)

但是既然你有一个Scala项目,那么你应该在那之后阅读该段落:

  

不再需要项目的 mainLang 参数。主要语言是根据添加到项目的依赖项确定的。如果依赖项包含 javaCore ,则语言设置为 JAVA ,否则设置为 SCALA 。请注意 appDependencies 部分中的模块化依赖项。

这意味着您的appDependencies应如下所示:

val appDependencies = Seq(
   jdbc
)