我试图将一些代码从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 举报,一经查实,本站将立刻删除。