coo*_*ler 5 java scala playframework playframework-2.0
我运行Play Framework 2.2.1.我曾经只有java控制器渲染模板.现在我添加一个Scala控制器来呈现一个新模板indexScala.scala.html.indexScala.scala.html的参数列表:
@()(implicit request: play.api.mvc.RequestHeader)
Run Code Online (Sandbox Code Playgroud)
它打来电话
@mainEmptyScala("blah", head) {}
Run Code Online (Sandbox Code Playgroud)
mainEmptyScala.scala.html的参数列表:
@(title: String, head: Html = Html(""))(body: Html)(implicit request: play.api.mvc.RequestHeader)
Run Code Online (Sandbox Code Playgroud)
当我调用indexScala模板时,我还将请求声明为Scala控制器中的隐式.但是,我得到了这个编译错误.
[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] ^
Run Code Online (Sandbox Code Playgroud)
我确保任何Java控制器都不会调用indexScala和mainEmptyScala模板,因此不应使用PlayMagicForJava.有谁知道如何解决这个编译错误?谢谢.
在你的控制器中,我假设你有这样的东西:
def myAction() = Action { implicit request =>
Ok(someView())
}
Run Code Online (Sandbox Code Playgroud)
因此,默认情况下,如果您没有在视图参数中指定隐式,即
改变
@()(implicit request: play.api.mvc.RequestHeader)
Run Code Online (Sandbox Code Playgroud)
到
@()
Run Code Online (Sandbox Code Playgroud)
您应该仍然能够显式访问视图中的 RequestHeader。那么你需要调用:
@mainEmptyScala("blah", head) {}(request)
Run Code Online (Sandbox Code Playgroud)
我还没有测试过这个,但我这应该有用
| 归档时间: |
|
| 查看次数: |
801 次 |
| 最近记录: |