如何在redirect页面显示脸部信息

我提供了一个界面,允许用户为应用程序创build帐户。 在过程结束时,注册方法执行注册过程,向页面添加成功消息,然后将用户导航到显示所有系统用户的中央数据表。

我的问题是,成功的消息从来没有得到显示,因为页面redirect。 我不能在方法中使用wait(),因为在方法完成之前,JSF消息不会显示。 理想情况下,我希望显示成功消息,然后在指定的时间后redirect页面。

我怎样才能做到这一点?

将消息保存在闪存范围中 。 它将在redirect中生存下来。

context.addMessage(clientId, message); externalContext.getFlash().setKeepMessages(true); return "users.xhtml?faces-redirect=true"; 

请注意,较旧的Mojarra版本有一些特殊的Flash范围相关的错误:

  • 问题1755 – Flash范围的消息比下一个请求的生命期更长 – 在2.0.7 / 2.1.4中修复
  • 问题2130 – Flash cookie支持2.1.24 / 2.2.1中固定的数据攻击
  • 问题2140 – redirect到不同path时,Flash cookie不可用 – 在2.1.14 / 2.2.0中修复
  • 问题2906 – Flash cookie在根目录中使用错误path – 在2.1.24 / 2.2.1中修复
  • 问题2959 – Flash创build有时会在IE中失败的version1 cookie – 在2.1.25 / 2.2.2中修复
  • 问题2977 – 会话过期后,闪存会导致旧的Cookie被破坏 – 在2.1.25 / 2.2.2中修复
  • 问题2866 – 当旧版本的Flash cookie未被清除时 – 在2.1.27 / 2.2.5中修复

您最好升级到最低Mojarra 2.1.27 / 2.2.5,以确保您的应用程序不受此影响。