Jsf Primefaces对话框窗口-验证关闭对话框

Jsf Primefaces对话框窗口-验证关闭对话框,jsf,primefaces,Jsf,Primefaces,我在primefaces对话框上有一个输入表单,并且我有服务器端验证,当用户单击 在我的验证结束时,我返回nullas以保持在同一页面上,但由于这是一个对话框,因此它关闭。有没有办法在出现验证问题时保持对话框打开,没有验证问题时关闭?我自己没有尝试过,但您可以根据验证消息的存在来切换对话框的可见性: <p:dialog visible=”#{not empty facesContext.messages}” ...> 我是一名Richfaces用户,他们的modalPanel(相

我在primefaces对话框上有一个输入表单,并且我有服务器端验证,当用户单击


在我的验证结束时,我返回
null
as以保持在同一页面上,但由于这是一个对话框,因此它关闭。有没有办法在出现验证问题时保持对话框打开,没有验证问题时关闭?

我自己没有尝试过,但您可以根据验证消息的存在来切换对话框的可见性:

<p:dialog visible=”#{not empty facesContext.messages}” ...>

我是一名Richfaces用户,他们的modalPanel(相当于
提供了一个
显示属性,在您的情况下可能会有所帮助

不幸的是,似乎没有这样的功能。您可以做的是使用一些JavaScript函数

首先,在bean中保留一个标志(一个布尔属性,初始化为
false
),指示是否存在验证错误。我们将此标志称为
myBean.validationError

现在,在您的页面中,您可以添加一个JavaScript代码来检查此属性并最终显示对话框


if(#{myBean.validationError}){
//showDialog();
myDialog.show();
}
因此,在您的用例中,页面将被重新显示,并且由于存在验证错误,该标志被设置为
true
。然后,对
if
语句进行求值,并将向用户显示对话框。

请检查:(我相信这是重复的)
<script type="text/javascript">
    if (#{myBean.validationError}) {
        // showDialog();
        myDialog.show();
    }
</script>