Ответ уже был принят к тому времени, когда мы попытались установить исходящий файл cookie для флэш-памяти. Любые значения, сохраненные на флэш-памяти, не будут доступны
У меня есть одна область видимости, управляемая JSF-компонентом. В методе слушателя действия <p:commandButton>
в этом управляемом компоненте я перенаправляю на другую страницу следующим образом.
public void register() {
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
Flash flash = context.getFlash();
flash.setKeepMessages(true);
flash.put("emailId", emailId);
context.redirect(((HttpServletRequest) context.getRequest()).getContextPath()+"/page.jsf");
}
page.jsf
привязан к bean-объекту в области запроса, в котором я получаю адрес электронной почты, сохраненный во флеш-области следующим образом.
<ui:define name="metaData">
<f:metadata>
<f:viewAction action="#{requestScopedBean.init}"/>
</f:metadata>
</ui:define>
public void init() {
String emailId = (String) FacesContext.getCurrentInstance().getExternalContext().getFlash().get("emailId");
System.out.println("emailId = "+emailId);
}
Адрес электронной почты недоступен в целевом компоненте. Адрес электронной почты в целевом компоненте требуется только для того, чтобы показать зарегистрированному пользователю, чтобы указать, что сообщение было отправлено на этот адрес, чтобы можно было проверить адрес электронной почты.
Выдает следующее предупреждение на серверном терминале.
ВНИМАНИЕ: JSF1095: Ответ уже был принят к тому времени, когда мы попытались установить исходящий файл cookie для флэш-памяти. Любые значения, сохраненные во флэш-памяти, не будут доступны при следующем запросе.
Почему это происходит? Моя Моджарра версия 2.2.7