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