0

1つのプロジェクトを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ますplay.api.data.Form

この動作は、Java と Scala を問題なく混在させることができた 2.0.x とは異なることに注意してください。

于 2013-02-20T22:44:29.477 に答える