JSF消息持久性
我有一个viewScoped bean,它具有一些业务逻辑验证。 我使用JSF消息持久性,jsf,jsf-2,primefaces,managed-bean,Jsf,Jsf 2,Primefaces,Managed Bean,我有一个viewScoped bean,它具有一些业务逻辑验证。 我使用 FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, result, null)); 问题是: 用户提交的表单无效 表单重新显示,由于使用PRG,未向用户显示消息 我使用以下代码行解决了这个问题: FacesContext.getCurrentInstance().getExternalContext().getFlas
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, result, null));
问题是:
FacesContext.getCurrentInstance().getExternalContext().getFlash().setKeepMessages(true);
现在的问题是业务逻辑验证消息持续时间过长:
如何解决此问题?根据您的问题评论,您正在使用Mojarra 2.0.3: 这真是一个古老的莫哈拉版本。它现在已经超过3.5岁了!(2010年7月发布)。您的具体问题是由2.0.7/2.1.4中修复的具体问题引起的。然而,之后有许多其他与flash示波器相关的问题报告。flash scope采用的是较旧的Mojarra版本,存在以下主要问题:
记录器中的
jsimplmanagementdeployer
条目可以识别为JBoss 6.x中的条目。而古老的Mojarra 2.0.3则表明您仍然在使用第一个JBoss 6.0.0版本。这里面充满了bug,强烈建议升级到更新的JBoss服务器,不仅是为了修复那些Mojarra问题,还有很多其他问题。考虑升级到JBASS为7.3。x或EAP 6.2。如有必要,您可以根据以下答案中的说明升级其捆绑Mojarra:。您使用什么向用户显示错误消息。你能不能请大家分享一下可能是设置了一个超时的留言可以帮上忙。请共享消息组件。您是否暗示您正在执行动作验证方法,并且在不需要重定向时也调用Flash\setKeepMessages()
?你应该只在你真正需要重定向时才调用它。谢谢@vinayakpingle。我已更新。@BalusC是,我正在操作中执行验证。我正在发送重定向之前调用Flash#setKeepMessages():return(“myPage.jsf?faces redirect=true”);在一些Mojarra实现中,我们碰巧发现FlashScope中的消息比它们应该的更持久。您正在处理哪个JSF impl?
[JSFImplManagementDeployer] Initialized 3 JSF configurations: [Mojarra-1.2, MyFaces-2.0, Mojarra-2.0]
[javax.enterprise.resource.webcontainer.jsf.config] Initializing Mojarra 2.0.3 ( b05)