升级到2.4时播放框架表单类型不匹配

时间:2016-09-02 09:09:48

标签: playframework playframework-2.3 playframework-2.4

将我的Pl​​ay Framework从2.3.6升级到2.4.8时,我收到此请求第一页的运行时错误。

type mismatch;
found   : play.api.data.Form[controllers.Account.PasswordData]
required: play.data.Form[controllers.Account.PasswordData]

与我的控制器中的这一行相关:

import play.api.data._

...

Ok(html.account.changePassword(passwordForm, "Change password", user))

我认为这一行(password.scala.html):

@(passwordForm: Form[controllers.Account.PasswordData], title: String, user: User)(implicit flash: play.api.mvc.Flash)

现在看来Play导入时使用play.data.Form只是在视图中使用术语Form。

解决此问题的最佳方法是什么?我应该将play.api.data.Form硬编码到视图中吗?或者将Account.scala中的Form对象更改为play.data.Form?

play.api.data.Form和play.data.Form有什么区别?

谢谢!

1 个答案:

答案 0 :(得分:0)

解决了它。我不小心配置了使用Java API的游戏。在Java API中,Form类是play.data.Form,但在Scala API中它是play.api.data.Form。

这是在这行的build.sbt配置中完成的:

lazy val root = (project in file(".")).enablePlugins(PlayScala, PlayEbean)