Play Framework の Form でエラー
コントローラーで play.data.Form を使ってフォームを作って
テンプレートに渡したらエラーがでました。
[error] \controllers\Application.java:17: エラー: クラス indexのメソッド renderは指定された型に適用できません。 [error] return ok(index.render(form)); [error] ^ [error] 期待値: play.api.data.Form<hoge> [error] 検出値: play.data.Form<hoge> [error] 理由: 実引数play.data.Form<hoge>はメソッド呼出変換によってplay.api.data.Form<hoge>に変換できません
コントローラは Java で テンプレートは Scala なので何かあるんでしょう。
Java を使用する場合は Build.scala でメイン言語を Java に指定する必要があるようです。
こんな風に
import sbt._ import Keys._ import play.Project._ object ApplicationBuild extends Build { val appName = "app-name" val appVersion = "1.0" val appDependencies = Seq( javaCore, javaJdbc, javaEbean ) val main = play.Project(appName, appVersion, appDependencies).settings( // Add your own project settings here ) }
具体的には appDependencies の部分で javaCore が追加されていればメイン言語が Java になるようです。javaCore を追加したらエラーは解消しました。
- 参考にしたサイト
http://stackoverflow.com/questions/16420128/actual-argument-play-data-form-cannot-be-converted-to-play-api-data-form
http://www.playframework-ja.org/documentation/2.1.2/Migration