显示ConfirmDialog取决于方法的结果

时间:2014-03-18 18:14:54

标签: jsf

这是我的commandButton

<p:commandButton value="Foo" update="panel1,panel2"
                    action="#{fooBean.add()}" />

方法fooBean.add()正在检查我想要添加的对象是否已经在数据库中 - 它返回true - 如果它已经在base中,则返回false,如果不是,则返回false。

如果fooBean.add()在点击按钮后返回false,我想要显示的是成功消息。

如果该消息类似于ConfirmDialog并且OK选项可以关闭加窗窗口,那将会很不错。像这样的东西: http://www.primefaces.org/showcase/ui/confirmDialog.jsf

任何想法如何帮助我?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您只想显示一个对话框,以便用户确认操作成功。您可以简单地使用growl,但这是使用您的方法的解决方案。

<强> .xhtml

<p:commandButton value="Foo" action="#{fooBean.add()}" />

<p:dialog widgetVar="dialog" modal="true">
    <p:commandButton value="Ok" icon="ui-icon-close" oncomplete="dialog.hide()" /> 
</p:dialog>

<强> fooBean

public void add() {

    // do stuff

    if(isInDB)
        RequestContext.getCurrentInstance().execute("dialog.show()");
}

这将在数据库中找到您的项目后打开对话框。然而,如果用户在没有额外点击的情况下获得更微妙的通知,则对用户来说可能更方便。