我阅读了许多有关mojarra闪存范围问题的主题 直到现在,我还没能完全摆脱这些讨厌的
“当我们尝试为闪存设置传出cookie时,响应已经提交。存储在闪存中的任何值都不会在下一个请求中提供。”
消息导致很多头痛。
我读到了关于自定义cookie或请求参数的解决方法,但我是 这样的时候感觉不太好 一个基本的东西长时间不能被接受。
目前的环境:
- mojarra 2.2.13
- omnifaces 1.12.1
- tomcat 8.0.32
任何人都可以确认,这仍然发生在最新的mojarra? 我以前的mojarra版本也遇到过这些问题 - 有时它会起作用,有时候不行。无论如何,消息 登录后只出现一次,但创建的cookie“csfcfc”永远不会被删除,现在每次请求都会出现警告。
由于其他问题,目前无法选择切换到myfaces。
我的简单案例,没什么特别的?:
@ManagedBean
public class LoginBean implements Serializeable {
public String login(){
String nextPage = null;
//...
if (dataOk){
Messages.addFlashGlobalInfo("welcome");
nextPage = "/user/dashboard?faces-redirect=true";
}
return nextPage;
}
}
@ViewScoped
public class DashboardBean implements Serializeable {
@PostConstruct
protected void init(){
//....
initData();
}
}
mastertemplate.xhtml:
<h:body>
<f:view>
<div class="content">
<h:panelGroup id="messages">
<h:panelGroup layout="block" rendered="#{not empty facesContext.messageList}">
<o:messages globalOnly="true" escape="false" infoClass="alert-success alert-dismissable" />
</h:panelGroup>
</h:panelGroup>
<ui:insert name="content"/>
</div>
</f:view>
</h:body>
login.xhtml
<h:commandButton action="#{LoginBean.login}" id="btn-login" value="Login">
</h:commandButton>