Насколько я понимаю, объекты, помещенные в область действия 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), и устанавливается значение flash под ключом с именем fooKey
. Затем я открываю другую вкладку браузера и просматриваю page02.xhtml
. Жизненный цикл запроса другой стороны (скажем, жизненный цикл B) начинает отображать эту страницу. Я ожидал, что жизненный цикл B может получить доступ к области флэш-памяти своего предыдущего жизненного цикла (т. е. к жизненному циклу A) и отобразить fooValue
в page02.xhtml
. Однако ничего не отображает.
Пожалуйста, поправьте меня в том, что я неправильно понимаю в прицеле со вспышкой в этом примере. Большое спасибо