理解JSF2中的Flash Scope
根据我的理解,面向请求生命周期中放置在Flash作用域内的对象将可用于下一个面请求生命周期,然后清除。
假设我有两页:
page01.xhtml:
<h:form> <h:commandButton action="#{page01Bean.action}" /></h:form>
Page01Bean:
@ManagedBean@RequestScopedpublic class Page01Bean { public void action(){ FacesContext.getCurrentInstance().getExternalContext().getFlash().put("fooKey", "fooValue"); }}
page02.xhtml:
<h:outputText value="#{flash.fooKey}"/>
因此,当page01.xhtml
单击按钮时,面部请求生命周期(比如生命周期A)开始并将值设置为所调用的键下的闪存fooKey
然后我打开另一个浏览器选项卡并浏览 page02.xhtml
。另一个面临请求生命周期(比如生命周期B)开始呈现此页面。我预计生命周期B可以访问其上一个生命周期的闪存范围(即生命周期A)并显示fooValue
在其中 page02.xhtml
。但是,它什么也没显示。
请纠正我在这个例子中对闪存范围的误解。非常感谢
万千封印
翻翻过去那场雪
相关分类