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

Java 根据条件单击按钮时显示确认弹出窗口,java,jsf,primefaces,Java,Jsf,Primefaces,我有一个p:commandButton,我需要在列表中添加一些值。在我的托管bean中,我正在验证必须添加的值,如果它验证为false,我必须显示一个确认弹出窗口。这是我的密码- <p:commandButton id="add" value="Add" type="submit" action="#{bean.doAdd}" ajax="false" update=":List"/> 我正在使用JSF2.0

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

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

我正在使用JSF2.0和PrimeFaces3.0。有人能告诉我如何从bean中显示弹出窗口吗

您可以使用
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> 

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

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}"/>
private boolean valid=true;
公共无效doAdd(){
有效=错误;
}

项目中是否包含primefaces?添加
import org.primefaces.context.RequestContext到你的bean…我确实包含primefaces,以前使用了错误的导入。更正了它并尝试了您的建议,但它引发了空指针异常。您的bean是托管bean吗?类似于:
@ManagedBean@SessionScoped
尝试在
响应中返回null,否则您的bean将被销毁,尝试查看它是否也与会话作用域一起工作……我将响应返回为空,并且尝试将其返回为null,不起作用。会话作用域也不起作用。。
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}"/>