【问题标题】:multiple <p:messages> on a JSF single pageJSF 单页上的多个 <p:messages>
【发布时间】:2010-08-09 11:35:39
【问题描述】:

这张图片应该清楚地说明问题。我正在使用 primefaces 中的 p:messages,但我想它也应该适用于 h:messages

我想将&lt;p:messages&gt; 组件与放置它的表单相关联。在这种情况下,两个组件都会收到消息。

错误是服务器产生的,我正在使用这个函数:

public static void showErrorMessage(String errorString) {
    FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, errorString, "");
    FacesContext.getCurrentInstance().addMessage(null, facesMsg);
}

我该如何解决这个问题?谢谢!

编辑:澄清:两个组件都在同一页面上。

【问题讨论】:

    标签: jsf-2


    【解决方案1】:

    这是一个非 ajax 请求吗? p:messages of PrimeFaces 2.1 有 redisplay(true by default) 选项,这可能会有所帮助。当 redisplay 为 false 时,已显示的消息将被忽略。您也可以使用 p:growl 作为替代方案。

    【讨论】:

    • 我使用的是 Primefaces 2.0.2。这是客户的要求,所以我不能升级:(
    • 我最终使用了 p:growl。似乎没有直接的解决方案。
    【解决方案2】:

    JSF + PrimeFaces 5.2 中的一个例子

    xhtml

    <p:messages for ="Message1" showDetail="true" autoUpdate="true" closable="true" />
    <p:messages for ="Message2" showDetail="true" autoUpdate="true" closable="true" />
    

    豆子

    FacesContext.getCurrentInstance().addMessage("Message1", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 1"));
    
    FacesContext.getCurrentInstance().addMessage("Message2", new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error!", "Hello 2"));
    

    This source give this answer and helped me

    【讨论】:

    • 我看不出这个答案和 5 岁的问题之间的关系。仔细阐述
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    • 2010-11-03
    • 2011-01-27
    • 2011-05-15
    • 2011-09-17
    • 2012-01-27
    相关资源
    最近更新 更多