JSF setKeepMessages(true)在重定向

时间:2018-03-07 15:04:00

标签: jsf redirect primefaces

我尝试在从create_user页面重定向到用户列表后成功创建用户的情况下显示成功消息。

这段代码特别适用于Chrome,Firefox和Edge浏览器。

在尊重的xhtml页面上创建用户的按钮:

<p:commandButton actionListener="#{myHandler.createUpdateUser}" value="#{msg.save}" />

调用此特定代码:

@ManagedBean
@ViewScoped
public Class myClass implements Serializable {

  public void createUpdateUser(){
    myBean.createUpdateUser();
    FacesContext facesContext = FacesContext.getCurrentInstance();
    ExternalContext externalContext = facesContext.getExternalContext();
    facesContext.addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, msg, StringUtils.EMPTY));
    externalContext.getFlash().setKeepMessages(true);
    externalContext.redirect(new StringBuilder(externalContext.getRequestContextPath())
                        .append("/users/list_users.jsf");
  }
}

两个页面都可以显示如下消息:

<p:messages id="messages" autoUpdate="true" />

现在它仅适用于Firefox和Edge。 在chrome中创建用户时,成功消息会在create_user页面上自动显示,并成功重定向到列表页面而不显示消息。该消息也不在FacesContext.getMessageList()中; 我尝试在actionButton中从actionListener切换到action 成功地为Chrome工作,但遗憾的是其他两个工作不正确。

我正在使用Primefaces v6.0,java 1.8,jboss eap 7。

Chrome版本64.0.3282.186(官方版本)(64位)

任何想法出了什么问题?

0 个答案:

没有答案