0

在尝试将一个项目从 play 版本 2.0.4 迁移到 2.1.0 时,我遇到了这个错误:

type mismatch found: play.api.data.Form[...]
              required: play.data.Form[...]

在所有类型的 Form[...] 的所有控制器中。在控制器中它看起来像这样:

import play.api._
import data.Form
import data.Forms._

val someform = Form(
       tuple(
       "name" -> text,
       "email" -> text
       )
  )

视图开始如下:

@(form : Form[...])

所有这些都会引发上述错误,但仅限于使用 2.0.4 版本创建然后迁移到 2.1.0 的项目。并且使用 2.1.0 从头开始​​创建项目,所有这些都像魅力一样工作。为什么会这样?此外,如果我在(已迁移项目的)视图中指定完全限定名称,例如:

@(form : play.api.data.Form[...])  it works fine....
4

1 回答 1

1

您必须javaCore从您的 appDependencies 中删除Build.scala. 否则 Play 会将您的项目视为Java项目,这意味着您的模板需要 Java API,在您的情况下,play.data.Form而不是 Scala API play.api.data.Form

请注意,这种行为与 2.0.x 不同,在 2.0.x 中您可以毫无问题地混合使用 Java 和 Scala。

于 2013-02-20T22:44:29.477 回答