消息未在ajax更新中显示

时间:2014-02-13 11:59:26

标签: java ajax jsf primefaces

我已经阅读了几十个关于类似问题的问题,但找不到答案。我在表单中有这段代码:

<p:outputPanel id="articleInfo">
    <p:growl id="messages" autoUpdate="true"/>
    <p:panel rendered="#{not empty myBB.selectedProduct}">
        <p:panel>
            <h:outputText escape="false" value="#{myBB.content}"/>
        </p:panel>
        <p:commandButton value="Button" update=":mainForm:articleInfo"/>    
    </p:panel>
</p:panel>

当我点击按钮时,会在辅助bean中生成新内容,并添加FacesMessage,如下所示:

public String getContent(){
    FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(severity, title, detail));
    return "something";
}

ajax更新很好,因为我看到了新的内容,addMessage也被调用,但我看不到消息。我尝试p:messages而不是咆哮,添加for="mainForm:articleInfo"并使用“mainForm:articleInfo”调用addMessage(我已经检查过它是视图中的正确ID。

我仍然无法找到理由。

1 个答案:

答案 0 :(得分:1)

您的messages未显示because的原因是您添加了代码以在getter中添加不是ideal的邮件。 Why getter gets called multiple times

删除添加的消息代码并放入method内部action调用。{/ p>