Java 如何在验证失败时保持窗体打开的弹出窗口,并在成功保存时关闭它?

Java 如何在验证失败时保持窗体打开的弹出窗口,并在成功保存时关闭它?,java,jsf,Java,Jsf,我有一个JSF中带有验证的表单,需要在弹出窗口中打开。当我提交表单时,我调用bean方法,将数据发送到后端,如果成功,弹出窗口将自动关闭 数据存储成功,我需要从bean方法返回什么,这样弹出窗口就会自动关闭 还有,我们在提交表格后如何得到回复?有可能吗?看这里。注意,支持多窗口应用程序。 如果你使用Ri饰面,你可能想考虑使用一个代替普通弹出窗口。 如果表单是,则可以使用进行ajax提交,并提供oncomplete属性,以便在成功提交后执行javascript。这个javascript可以是对Ri

我有一个JSF中带有验证的表单,需要在弹出窗口中打开。当我提交表单时,我调用bean方法,将数据发送到后端,如果成功,弹出窗口将自动关闭

数据存储成功,我需要从bean方法返回什么,这样弹出窗口就会自动关闭


还有,我们在提交表格后如何得到回复?有可能吗?看这里。注意,支持多窗口应用程序。

如果你使用Ri饰面,你可能想考虑使用一个代替普通弹出窗口。


如果表单是
,则可以使用
进行ajax提交,并提供
oncomplete
属性,以便在成功提交后执行javascript。这个javascript可以是对
Richfaces.hideModalPanel('pnl')的调用以模态id作为参数。

以下代码可用于根据验证保持弹出窗口的显示/隐藏:

<a4j:commandButton value="Create Quote" id="createQuote" action="#{quoteAction.createQuote}"
                               immediate="false" 
                               execute="envType country partner @this"
                               render="envType country partner"
                               oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('quoteResultPanel')}.show();}">
            </a4j:commandButton>

这是richfaces的正确答案,以防万一还有人想知道
oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('quoteResultPanel')}.hide();}"