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->common
和main->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._
,没有帮助。
答案 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)