我在 scala 模板中有这样的错误:
not found: value flash
19 @if(flash.contains("bladLogowania")) {
20 <p class="error">
21 @flash.get("bladLogowania")
22 </p>}
我已经读到有一些变化,但我不确定如何使它工作。我仍然想直接从模板中检查这些值。有任何想法吗?
我在 scala 模板中有这样的错误:
not found: value flash
19 @if(flash.contains("bladLogowania")) {
20 <p class="error">
21 @flash.get("bladLogowania")
22 </p>}
我已经读到有一些变化,但我不确定如何使它工作。我仍然想直接从模板中检查这些值。有任何想法吗?
将您的控制器代码更改为request.flash而不是flash
我在 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 访问地图。希望能帮助到你!
请阅读 2.3 的迁移指南:http ://www.playframework.com/documentation/2.3.x/Migration23 ,特别是“会话和 Flash 隐式”部分
因此,您的代码将更改为:
@if(request2flash.contains("bladLogowania")) {
<p class="error">
@request2flash.get("bladLogowania")
</p>
}
我在为 Play 2.3.X 编写代码时遇到了同样的错误。我发现关于迁移到 2.3.X 的文档是错误的。挖掘 Play api doc 我发现你只需要添加一个导入到 Http.context.Implicit 来访问 flash 范围,就像你在 play 2.3.X 之前所做的那样:
@import play.mvc.Http.Context.Implicit