Из того, что я понимаю, объекты, помещенные внутри области Flash в жизненном цикле запросов лиц, будут доступны для жизненного цикла запроса последующих лиц, а затем будут очищены.
Предположим, что у меня две страницы:
page01.xhtml
<h:form>
<h:commandButton action="#{page01Bean.action}" />
</h:form>
Page01Bean:
@ManagedBean
@RequestScoped
public 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
. Однако он ничего не отображает.
Пожалуйста, поправьте меня, что я неправильно понял о возможности флэш-памяти в этом примере. Большое спасибо