微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – 无法找到参数flash的隐含值

我试图将一些代码从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>
}

我从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的细节,但这个编译错误是说你应该:

>在调用flag()时传递一个显示的play.mvc.Scope.Flash实例,

views.Application.html.flag()(myFlash)

要么
>在调用flag()的范围内创建Flash的隐式实例.您可以通过导入某些对象的内容(import some.path.FlashImplicits._)或通过自己定义隐式实例来执行此操作,

implicit val myFlash: play.mvc.Scope.Flash = ...
...
views.Application.html.flag()

所以真正的问题就是:你想从哪里得到这个Flash实例?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐