实际参数play.data.Form无法转换为play.api.data.Form

时间:2013-05-07 13:18:48

标签: scala playframework playframework-2.1

play不会将我的java表单对象转换为scala世界。

    [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

view-template看起来像这样:

@(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._,没有帮助。

1 个答案:

答案 0 :(得分:1)

您的前端项目是Scala项目,而不是Java项目。向它添加对javaCore的依赖,它将是一个Java项目。然后做一个play clean编译,一切都应该工作。例如:

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