2

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

not found: value flash

19        @if(flash.contains("bladLogowania")) { 
20        <p class="error">
21        @flash.get("bladLogowania")
22       </p>}

我已经读到有一些变化,但我不确定如何使它工作。我仍然想直接从模板中检查这些值。有任何想法吗?

4

4 回答 4

2

将您的控制器代码更改为request.flash而不是flash

于 2014-08-01T11:48:16.373 回答
1

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

到我的控制器类:

添加import play.api.mvc.RequestHeader;

改变flash("success", "Logged Out");

request.flash("success", "Logged Out");

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

添加(implicit request: play.api.mvc.RequestHeader)

改变

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

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

注意需要使用 flash.data 访问地图。希望能帮助到你!

于 2016-02-11T15:15:58.003 回答
0

请阅读 2.3 的迁移指南:http ://www.playframework.com/documentation/2.3.x/Migration23 ,特别是“会话和 Flash 隐式”部分

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

@if(request2flash.contains("bladLogowania")) { 
  <p class="error">
    @request2flash.get("bladLogowania")
  </p>
}
于 2014-06-30T08:05:12.140 回答
0

我在为 Play 2.3.X 编写代码时遇到了同样的错误。我发现关于迁移到 2.3.X 的文档是错误的。挖掘 Play api doc 我发现你只需要添加一个导入到 Http.context.Implicit 来访问 flash 范围,就像你在 play 2.3.X 之前所做的那样:

@import play.mvc.Http.Context.Implicit
于 2015-01-14T13:28:47.987 回答