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 但我仍然不知道如何解决它。

4

1 回答 1

6

看起来在您的迁移过程中混合使用了 Java 和 Scala。

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

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

如果您遵循迁移指南,那么您可能会这样做:

val appDependencies = Seq(
   javaCore, javaJdbc, javaEbean
)

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

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

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

val appDependencies = Seq(
   jdbc
)
于 2013-04-16T07:00:38.077 回答