Jsf 将消息保存到flash以在重定向后显示它们

Jsf 将消息保存到flash以在重定向后显示它们,jsf,jsf-2.2,Jsf,Jsf 2.2,这是我的后盾。我想将消息存储到flash,并在重定向后显示它。这不管用。什么也没发生。解决办法是什么 getJsfContext()是我获取FacesContext.getCurrentInstance()消息存储到Flash的函数?(或者在某些情况下,您可能会遇到Flash的错误)。在您的评论之后,我似乎根本没有将其存储到Flash中。要向我的代码中添加什么来存储它?哪个JSF impl/版本?旧版本的Mojarra在使用flash时遇到了很多麻烦。要将它们全部排除,请确保您使用的是最新版本。

这是我的后盾。我想将消息存储到flash,并在重定向后显示它。这不管用。什么也没发生。解决办法是什么


getJsfContext()
是我获取
FacesContext.getCurrentInstance()

消息存储到
Flash
的函数?(或者在某些情况下,您可能会遇到
Flash
的错误)。在您的评论之后,我似乎根本没有将其存储到Flash中。要向我的代码中添加什么来存储它?哪个JSF impl/版本?旧版本的Mojarra在使用flash时遇到了很多麻烦。要将它们全部排除,请确保您使用的是最新版本。
flash.put(字符串键,对象消息)
用于存储消息,在接收方,您可以使用
flash.get(Object key)
获取与某个键相关的消息。您可能会遇到类似这样的消息,“警告:JSF1095:在我们尝试为闪存设置传出cookie时,响应已经提交。存储到闪存的任何值在下一次请求时都将不可用。”我在JSF 2.2.7上使用
flash
时遇到。“JSF 2.2”是规范版本。我要求实现和它的版本。例如,“Mojarra 2.2.9”或“MyFaces 2.2.6”。顺便说一下,@Tiny对这个警告说得很好。如果在呈现响应阶段而不是调用操作阶段执行作业,则确实会发生这种情况。你看过服务器日志了吗?
 Flash flash = FacesContext.getCurrentInstance().getExternalContext().getFlash();
 flash.setKeepMessages(true);
 getJsfContext().addMessage(null,new FacesMessage(FacesMessage.SEVERITY_INFO, "My message.", ""));

 getJsfContext().getExternalContext().redirect("index.xhtml");