scala - 找不到参数 flash 的隐式值

标签 scala playframework

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

Java 版本中的相关标记检查 Flash 范围的内容,并根据其值(错误、成功等)向用户创建通知。

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

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

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

我从 main.scala.html 打来的电话通过:
@views.Application.html.flag()

我得到的错误是:

The file {module:.}/tmp/generated/views.html.main.scala could not be compiled. Error raised is : could not find implicit value for parameter flash: play.mvc.Scope.Flash



对新标签的调用是正确的,就好像我用浏览器中显示的某个字符串替换了内容。

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

最佳答案

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

  • 传递 play.mvc.Scope.Flash 的显式实例在调用 flag() ,
    views.Application.html.flag()(myFlash)
    

  • 制作 Flash 的隐式实例在以下范围内可用 flag()叫做。您可以通过导入某个对象的内容( import some.path.FlashImplicits._ )或自己定义隐式实例来做到这一点,
    implicit val myFlash: play.mvc.Scope.Flash = ...
    ...
    views.Application.html.flag()
    

  • 所以真正的问题变成了:你想从哪里得到这个 Flash实例来自?

    关于scala - 找不到参数 flash 的隐式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6892064/

    相关文章:

    java - 在 Play Framework 中,模型的更改如何以及何时与数据库架构同步?

    playframework - 如何从 Amazon S3 读取 PDF 格式的文件流并在浏览器中显示

    postgresql - 使用 Slick 监听 PostgreSQL NOTIFY 事件

    scala - 在现有项目中创建新的 lagom 微服务的 sbt 命令是什么?

    java - 如何在intellij中引用图像?

    scala - 如何比较从 Option[Long] scala 获得的值

    scala - Akka/Scala 检测关闭的 TCP 连接?

    unit-testing - 如何让 HBaseTestingUtility 在 map reduce 作业中查找类?

    java - 为什么 jvisualvm 看不到我的 Play Framework 应用程序?

    java - 玩!使用 JDBC