Jsf 2 如何使用flashScope将消息发送到JSF2中的下一页
我正在使用JSF 2.0、primefaces 5和JBoss AS 6。在开始时,它会显示以下消息:[JSFImplManagementDeployer]初始化了3个JSF配置:[Mojarra-1.2、MyFaces-2.0、Mojarra-2.0],并尝试使用JSF2 flashScope向下一页发送消息。 这是第一页的ManagedBean:Jsf 2 如何使用flashScope将消息发送到JSF2中的下一页,jsf-2,primefaces,Jsf 2,Primefaces,我正在使用JSF 2.0、primefaces 5和JBoss AS 6。在开始时,它会显示以下消息:[JSFImplManagementDeployer]初始化了3个JSF配置:[Mojarra-1.2、MyFaces-2.0、Mojarra-2.0],并尝试使用JSF2 flashScope向下一页发送消息。 这是第一页的ManagedBean: if (error) { FacesMessage facesMessage = new FacesMessage(FacesMessag
if (error) {
FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_WARN, "An error has occurred", "Please try again.");
FacesContext facesContext = FacesContext.getCurrentInstance();
Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
flash.setKeepMessages(true);
flash.setRedirect(true);
flash.putNow("message", facesMessage);
facesContext.addMessage(null, facesMessage);
try {
facesContext.getExternalContext().redirect("index.xhtml");
}
catch (IOException ex) {
logger.error("IOException during redirection to the home");
}
}
在我的index.xhtml页面中,我想显示我插入标记的消息:
...
<ui:define name="top">
<p:messages />
...
如果发生错误但未显示消息,则重定向有效。怎么了?我必须在目标页面ManagedBean中编写一些代码吗?为什么不将该消息放在会话中,并在另一个bean中访问它!?您使用的是哪个JSF实现版本?这个答案可能对你有帮助。另外,如果你只想让这些表情信息存活下来,你也可以帮助你@Makky,你所说的并不能提供相同的行为。使用multitab导航时,Http会话是共享的,因此如果用户从不同的选项卡访问这些视图,它将保持值冲突。您好,我不确定使用的是什么实现版本。在开始JBoss编写时,这行代码[JSFImplManagementDeployer]初始化了3个JSF配置:[Mojarra-1.2,MyFaces-2.0,Mojarra-2.0],所以我认为它使用的是Mojarra-2.0]。在JBossAS 6.0中,我的应用程序是否可以使用更新版本的mojarra?谢谢,我认为问题是由旧的Mojarra版本引起的。如何获得在不使用flashScope的情况下将消息发送到下一页的权限?在介绍flashscope之前,这种行为是通过将消息保存到会话中,然后在下一页中检索得到的,还是有更好的方式?