java - Play 2.2.1 : ambiguous implicit values for object PlayMagicForJava

标签 java scala playframework playframework-2.0

我运行 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/

相关文章:

java - Ant/Ubuntu/Eclipse JAVA_HOME

java - 如何在 Spring 中 @Autowire scala 对象

scala - 如何处理 Scala 中的类型名称冲突?

java - Play 在刷新时重新编译所有文件?

java - 删除 Java 二叉搜索树中的方法

java - jxls reader 2.03读取日期到java 8 ZonedDatetime等

java - Dagger 2 不会注入(inject)我的对象,但可以从组件中获取

scala - 在 Gatling 中控制每秒请求数和超时阈值

scala - 为什么 Play 框架不重新加载资源?

playframework - 验证 : check for uniqueness before saving