我运行 Play Framework 2.2.1。我以前只有 java Controller 渲染模板。现在我正在添加一个 Scala Controller 来呈现一个新模板 indexScala.scala.html。 indexScala.scala.html 的参数列表:
@()(implicit request: play.api.mvc.RequestHeader)
它调用
@mainEmptyScala("blah", head) {}
mainEmptyScala.scala.html 的参数列表:
@(title: String, head: Html = Html(""))(body: Html)(implicit request: play.api.mvc.RequestHeader)
当我调用 indexScala 模板时,我还在 Scala Controller 中将请求声明为隐式。但是,我遇到了这个编译错误。
[error] ~/myapp/app/views/indexScala.scala.html:29: ambiguous implicit values:
[error] both method requestHeader in object PlayMagicForJava of type => play.api.mvc.RequestHeader
[error] and value request of type play.api.mvc.RequestHeader
[error] match expected type play.api.mvc.RequestHeader
[error] @mainEmptyScala("blah", head) {
[error] ^
我确保 indexScala 和 mainEmptyScala 模板不会被任何 Java Controller 调用,因此不应使用 PlayMagicForJava。有谁知道如何解决这个编译错误?谢谢。
最佳答案
在遇到同样的问题后,我偶然发现了一个解决方案。适用于我的解决方案是我在 Play Framework 2.3.x 和 Scala 2.11.1 上。
只需在模板中的任何位置使用 play.api.mvc.Request:
@()(implicit request: play.api.mvc.Request[Any])
关于java - Play 2.2.1 : ambiguous implicit values for object PlayMagicForJava,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22279175/