gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 22:35:07 24 4
gpt4 key购买 nike

我正在尝试将一些代码从 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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com