jsf - 重定向后保留 JSF 消息

标签 jsf jsf-2 myfaces

我有一个 JSF 页面(使用 MyFaces 2.0),它在第一次显示时会收集一些数据。如果它找不到某些信息,它应该提供一条消息,并重定向回不同的页面。我尝试使用此处找到的解决方案 Preserving FacesMessage after redirect for presentation through <h:message> in JSF (setKeepMessages(true)) 但重定向后消息不显示。我能挑出的唯一区别是我没有使用导航规则,我在外部上下文中调用了 redirect() 调用,因为这不会发生在正常操作中。

相关代码:

public void redirectToPageWithMessage(String inPage, String message, FacesMessage.Severity severity){
    getFlash().setKeepMessages(true);
    addMessage(message, severity);
    try {
        getFacesContext().getExternalContext().redirect(inPage);
    } catch (IOException e) {
        e.printStackTrace();
    }
}

不幸的是,这似乎不起作用。重定向发生得很好,但 < messages/> 标签没有显示消息。 redirect() 发生的方式有什么不同吗?

最佳答案

保存消息的代码在阶段结束后执行(请参阅 Flash.doPostPhaseActions(FacesContext) )。因此,预计它不起作用,但也许您可以在重定向之前调用 Flash.doPostPhaseActions。 Note 不是“干净”的解决方案,但它是可能的。

关于jsf - 重定向后保留 JSF 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7503113/

相关文章:

css - 覆盖现有的 CSS 文件

javascript - 如何在显示对话框时暂时禁用网页滚动?

jquery - Primefaces 是否能够从另一个域获取 jquery?

jsf-2 - 当两个 bean 具有相同范围时,托管属性值不会更新

java - 在JSF中,如何使h :commandButton to send only one field?

attributes - 复合组件属性中的枚举值

java - 在 View 之间传递对象

jsf - IntelliJ IDEA 11 中的 Primefaces 组件库

jsf - ocpsoft.org PrettyTime : Could not find any registered converter-class

java - JSF Web 项目 <h :xxx> tag invisible