【问题标题】:how to prevent p:messages from being updated when update global PrimeFaces growl更新全局 PrimeFaces 时如何防止 p:messages 被更新
【发布时间】:2016-04-05 22:30:28
【问题描述】:

我正在使用 PF 5.3 和 JSF 2.2

我有一个全局 p:growl 将在 backBean 中更新,问题是每当我更新全局 p:growl 时,其他 p:message 也会使用相同的数据进行更新。我想要一种方法只更新后台bean中action方法中的全局咆哮,其他p:messages不应该更新。

xhtml:

<h:body>
    <p:growl id="growlGeneralMessages" showDetail="true" sticky="true" globalOnly="true" /> 
    <h:form id="register_new_student" enctype="multipart/form-data" >
       <p:messages autoUpdate="true" />
       <p:commandButton id="new_student_action" value="Add"  update="register_new_student_panel" validateClient="true" action="#{teacherPresentation.newStudentAction()}" />
   </h:form>
</h:body>

回豆:

public String newStudentAction() {
    FacesContext context = FacesContext.getCurrentInstance();
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "Wrong username or password!", "");
    context.addMessage(null, message);
    context.getExternalContext().getFlash().setKeepMessages(true);

    return "teacher.xhtml?faces-redirect=true";
}

我尝试了两件事,但没有成功:

1- 从 p:messages 中删除属性 autoUpdate(失败)

2-在addMessage方法中指定客户端id

context.addMessage(null, message); --> context.addMessage("growlGeneralMessages", message); (也失败了)

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    我认为你有两种选择来控制它

    关键选项

    p:growl 和 p:messages 都有一个 for 属性,可让您将这些组件绑定到一个键。您可以控制要在每个组件上显示哪些消息,将该键用作FacesContext.addMessage() 的clientId 参数

    这就是我的意思:

    <p:growl for="growlKey"/>
    

    在 BackBean 中:

    facesCtx.addMessage("grwolKey", facesMsg);
    

    严重性选项

    同样,这两个组件都有一个 severity 参数,可让您控制显示哪些消息。例如,您可以使用 info 表示咆哮,使用 error 表示消息或其他任何内容。

    创建FacesMessage 时,您可以使用FacesMessage.Severity 指定严重性。

    FacesMessage facesMsg = new FacesMessage(
       FacesMessage.SEVERITY_ERROR, "Your title", "Your Message")
    

    希望对你有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-07
      • 2018-04-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多