Playframework 2.0 迁移到2.3后未找到闪存/会话

Playframework 2.0 迁移到2.3后未找到闪存/会话,playframework-2.0,scala-template,Playframework 2.0,Scala Template,我在scala模板中有这样的错误: not found: value flash 19 @if(flash.contains("bladLogowania")) { 20 <p class="error"> 21 @flash.get("bladLogowania") 22 </p>} 未找到:值闪烁 19@if(flash.contains(“bladLogowania”){ 20 21@flash.get(“

我在scala模板中有这样的错误:

not found: value flash

19        @if(flash.contains("bladLogowania")) { 
20        <p class="error">
21        @flash.get("bladLogowania")
22       </p>}
未找到:值闪烁
19@if(flash.contains(“bladLogowania”){
20

21@flash.get(“bladLogowania”) 22

}

我读到有一些变化,但我不知道如何使这项工作。我仍然希望直接从模板检查此值。有什么想法吗?

请阅读2.3:的迁移指南,特别是“会话和闪存”部分

因此,您的代码将更改为:

@if(request2flash.contains("bladLogowania")) { 
  <p class="error">
    @request2flash.get("bladLogowania")
  </p>
}
@if(request2flash.contains(“bladLogowania”){

@request2flash.get(“bladLogowania”)

}
将控制器代码更改为请求。flash而不仅仅是flash

在为Play 2.3.X编写代码时,我会遇到同样的错误。 我发现关于迁移到2.3.X的文档是错误的。翻开Play api文档,我发现您只需像在Play 2.3.X之前一样,将导入添加到Http.context.Implicit以访问flash作用域:

@import play.mvc.Http.Context.Implicit

我在2.3迁移后对编译所做的更改,其中使用隐式闪存成为一个问题:

到我的控制器类:

添加
import play.api.mvc.RequestHeader

更改
flash(“成功”、“注销”)

request.flash(“成功”,“注销”)

使用隐式闪存访问我的scala.html类:

添加
(隐式请求:play.api.mvc.RequestHeader)

改变

@if(flash.contains("success")) {
                <p class="success">
                    @flash.get("success")
                </p>
            }
@if(flash.contains(“success”)){

@flash.get(“成功”)

}

@if(request.flash.data.contains(“success”)){

@request.flash.get(“成功”)

}
注意需要使用flash.data访问地图。
希望有帮助

还有一个问题-我在build.stb中犯了错误。现在正在使用上面给出的代码。嗯,为什么要投否决票?我真的引用了2.3版的游戏迁移文档?“这些参数的名称已更改,以避免这些参数名称可能被同名的应用程序本地变量隐藏的冲突。
session
变成了
request2session
flash
变成了
request2flash
lang
变成了
request2lang
。任何显式调用这些参数的代码。”不建议您显式调用这些隐式方法,…“我没有否决投票,但您最后的评论应该告诉您原因。request.flash是测试中的推荐方式,我无法根据文档使用替换变量,可以确认request.flash起了作用。
@if(request.flash.data.contains("success")) {
                <p class="success">
                    @request.flash.get("success")
                </p>
            }