1

play が私の Java フォーム オブジェクトを scala world に変換しません。

    [error] /home/myproject/split/frontend/app/controllers/frontend/Configuration.java:46: error: method render in class settings cannot be applied to given types;
    [error]             return ok(settings.render(settingsForm.fill(userSettings)));
    [error]                               ^
    [error]   required: play.api.data.Form<Settings>
    [error]   found: play.data.Form<Settings>
    [error]   reason: actual argument play.data.Form<Settings> cannot be converted to play.api.data.Form<Settings> by method invocation conversion

ビュー テンプレートは次のようになります。

@(settingsForm: Form[Settings])

@import play.i18n._
@import helper._
@import helper.twitterBootstrap._

@main {

    @helper.form(action = controllers.frontend.routes.Configuration.setSettings) {

何か案が?

また、プロジェクトの分割main->frontend->commonmain->backend->common. このページ (ビューとコントローラー) を からcommonに移動しましたfrontend。うまくcommonいきました。今、frontend私はこのエラーを受け取ります。

私は実際に同様の問題を抱えていたので、設定java.util.Listに追加するtemplatesImport ++= Seq("java.util._", ...必要がありました:

  val frontend = play.Project(
      appName + "-frontend", appVersion, path = file("main/frontend")
  ).settings(
      templatesImport ++= Seq("java.util._", "models.frontend._")
  ).dependsOn(common).aggregate(common)

私はplay.data._すでに試してみましたが、助けにはなりませんでした。

4

1 に答える 1

1

フロントエンド プロジェクトは Java プロジェクトではなく、Scala プロジェクトです。これに javaCore への依存関係を追加すると、Java プロジェクトになります。次に play clean compile を実行すると、すべてがうまくいくはずです。例えば:

val frontend = play.Project(
  appName + "-frontend", appVersion, Seq(javaCore), path = file("main/frontend")
).settings(
  templatesImport ++= Seq("java.util._", "models.frontend._")
).dependsOn(common).aggregate(common)
于 2013-05-15T00:09:20.763 に答える