如何保持" MODAL"在托管bean验证上打开表单?

时间:2016-02-10 13:22:32

标签: jsf

我正在使用JSF和botstrap。 我创建了一个带有要提交的值的pop。 单击提交按钮即可调用managedBean函数,其中我已经完成了一些验证,如: -

FacesContext.getCurrentInstance()。addMessage("密码:newUserPassword2",新的FacesMessage("密码应至少包含8个字符"));

但是当我点击提交按钮时,弹出窗口将关闭,当我再次弹出窗口时,会显示消息。

如何防止弹出窗口被关闭?

1 个答案:

答案 0 :(得分:1)

经过大量研究后发现了一个解决方案。 我使用f:ajax来防止弹出窗口关闭弹出窗口,如

<h:commandButton id="submitPassword" action="#{managedBean.managedBeanFunction}" value="Submit">
                        <f:ajax execute="formId" render="formId" />
                    </h:commandButton>

在managedBeanFunction中,我们将标志设置为true(如果所有验证都已通过),可以从JSF访问。 在模态部分,我们将在检查标志

后编写一个脚本段
<h:panelGroup layout="block" id="messages" rendered="#{managedBean.managedBeanFlag == 'true'}">
                <script language="JavaScript" type="text/javascript">
                    // <![CDATA[
                           $('#closeButtonId').click();
                    // ]]>
                </script>
            </h:panelGroup>

因此,如果未设置标志,则不会调用脚本函数,因此弹出窗口不会被关闭