根据条件在按钮单击时显示确认弹出窗口

时间:2012-11-05 08:25:31

标签: java jsf primefaces

我点击了p:commandButton,我需要在列表中添加一些值。在我的托管bean中,我正在验证必须添加的值,如果验证为false,我必须显示一个确认弹出窗口。这是我的代码 -

<p:commandButton id="add" value="Add" type="submit"                                      action="#{bean.doAdd}" ajax="false"
update=":List"/>

在bean中,点击“添加”按钮,

public String doAdd() throws Exception {
        if(response != null) {
            if(keyList.contains(response))  {
                if(!responseList.contains(response)) {
                    responseList.add(response);
                } 
            } else {
               //Have to display confirmation popup.
            }
            response = "";
        }

        return response;
    }

我正在使用jsf 2.0和primefaces 3.0。有人可以告诉我如何显示bean的弹出窗口吗?

2 个答案:

答案 0 :(得分:2)

您可以使用RequestContext在托管bean中运行js代码

确保它是一个ajax调用 - 没有ajax="false"

像这样

RequestContext context = RequestContext.getCurrentInstance();  
context.execute("YourDialogwidgetVar.show()");

我假设您定义了一些对话框......

<p:confirmDialog id="confirmDialog" message="Hello"  
                header="Header" widgetVar="YourDialogwidgetVar">  
</p:confirmDialog> 

答案 1 :(得分:0)

此代码可能对您有所帮助。

private boolean valid = true; 

public void doAdd() {
    valid = false;
}


<p:dialog id="basicDialog" header="Basic Dialog" visible="#{!testBean.valid}">
    <h:outputText value="Message!" />
</p:dialog>

<h:commandButton id="modalDialogButton" value="Modal" action="#{testBean.doAdd}"/>