如何在重定向页面中显示面部消息我提供了一个允许用户为应用程序创建帐户的界面。在该过程结束时,注册方法执行注册过程向页面添加成功消息,然后将用户导航到显示所有系统用户的中央数据表。我遇到的问题是,由于页面重定向,成功消息永远不会显示。我不能在方法中有wait()因为在方法完成之前不会显示JSF消息。理想情况下,我希望显示成功消息,然后在指定的时间后重定向页面。我怎样才能做到这一点?
2 回答

智慧大石
TA贡献1946条经验 获得超3个赞
context.addMessage(clientId, message);externalContext.getFlash().setKeepMessages(true);return "users.xhtml?faces-redirect=true";
请注意,较旧的Mojarra版本具有一些与Flash范围相关的特殊错误:
问题2959 - Flash有时会创建在IE中失败的version1 cookie - 在2.1.25 / 2.2.2中修复
issue 2977 - Flash在会话到期后导致过时cookie上的NPE - 在2.1.25 / 2.2.2中修复
您最好升级到最低Mojarra 2.1.27 / 2.2.5,以确保您的应用程序不受此影响。

哈士奇WWW
TA贡献1799条经验 获得超6个赞
仅当目标页面位于不同的基本文件夹中时。Mojarra目前已经在2.1.15。如果你无法升级,最好的办法是自己重新发明闪存范围:1)生成一些唯一的ID。2)在会话范围内存储消息,并以唯一ID作为密钥。3)将唯一ID存储为cookie值。4)在preRenderView
重定向页面的情况下,检查cookie是否存在,如果存在,则将其用作会话属性密钥以从会话获取消息(并且不要忘记删除cookie和会话属性)
添加回答
举报
0/150
提交
取消