找不到参数flash的隐含值

Per*_*ega 14 scala playframework

我正在尝试将一些代码从Play Framework Java移植到Play Framework Scala,但是我在移植标签时遇到了一些问题.

Java版本中的标记检查Flash作用域的内容,并根据其值(错误,成功等)向用户创建通知.

我试图创建一个Scala视图(flag.scala.html):

@()(implicit flash:play.mvc.Scope.Flash)

@if(flash.get("error")) {
    <p style="color:#c00">
        @flash.get("error")
    </p>
}
Run Code Online (Sandbox Code Playgroud)

我来自main.scala.htmlvia:

@views.Application.html.flag()
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

无法编译文件{module:.}/tmp/generated/views.html.main.scala.引发的错误是:找不到参数flash的隐含值:play.mvc.Scope.Flash

对新标记的调用是正确的,就像我用浏览器中显示的某些String替换内容一样.

我确定这是愚蠢的,但我卡住了.有什么建议吗?

Kip*_*ros 5

我不知道Play的细节,但是这个编译错误说你应该:

  1. play.mvc.Scope.Flash在调用中传递显式实例flag(),

    views.Application.html.flag()(myFlash)
    
    Run Code Online (Sandbox Code Playgroud)

    要么

  2. Flashflag()调用的作用域中创建一个可用的隐式实例.您可以通过导入某个object(import some.path.FlashImplicits._)的内容或自己定义隐式实例来完成此操作,

    implicit val myFlash: play.mvc.Scope.Flash = ...
    ...
    views.Application.html.flag()
    
    Run Code Online (Sandbox Code Playgroud)

所以真正的问题就变成了:你想Flash从哪里获得这个实例?