如何在primefaces中执行ajax提交时显示消息

时间:2012-05-15 01:46:40

标签: primefaces

我正在尝试使用glassfish和eclipse进行Primefaces。

我想在创建或输入用户详细信息时使用Primefaces Dialog。 例如,假设在一个页面中,我有一个Create按钮,单击该按钮会显示该对话框。

<p:dialog id="dialog"  widgetVar="dlg1">
    <h:form id="addMemberForm">
            <!-- More code here -->
            <f:facet name="footer">
                <p:commandButton value="Save"
                    actionListener="#{myBean.save}"
                    oncomplete="dlg1.hide()"  />
            </f:facet>
        </p:panelGrid>
    </h:form>
</p:dialog>

..点击我的保存按钮后,执行此代码。

public class MyBean{
    public void save(ActionEvent event) {
        try{
            myEJB.addMember(newMember);
            //how to show message
        }catch(Exception e){
            e.printStackTrace();
        }
    }
}

如果添加成功,如何向用户显示对话框弹出消息。

我尝试使用此代码,但这并未显示,对话框也被解除了。

FacesMessage facesMessage = new FacesMessage("Successful add!");
FacesContext.getCurrentInstance().addMessage(null, facesMessage);

我在想这是一个ajax提交,所以一切都被清除了。

我认为我必须在完成期间执行一些代码,但我不知道该怎么做?

1 个答案:

答案 0 :(得分:7)

您应该从ajax请求更新消息代码。

假设您的页面上有这样的全局消息标记:

<h:messages id="msg"/>

由于它不在对话框的表单中,因此您需要在update的{​​{1}}属性中使用绝对ID来处理它:

p:commandButton