如何保持弹出与表单打开验证失败,并关闭它成功保存



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

数据存储成功,我需要从bean方法返回什么,以便弹出窗口自动关闭。

还有,提交表单后我们如何得到响应?这可能吗?

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

<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>

#{facesContext.maximumSeverity == null}将验证任何验证消息,如果这不是null,那么用户将不会显示在弹出窗口中,否则用户将显示在弹出窗口中。你甚至可以用另一种方式使用它,比如只在没有验证消息时关闭弹出窗口,否则保持弹出窗口和消息。

oncomplete="if (#{facesContext.maximumSeverity == null}) {#{rich:component('quoteResultPanel')}.hide();}"

看这里使用JavaServer Faces (JSF)弹出窗口的例子。请注意,MyFaces Orchestra支持开箱即用的多窗口应用程序。

如果你正在使用RichFaces,你可能要考虑使用富模态窗口而不是普通的弹出窗口。

如果你的表单是一个<a4j:form>,你可以使用一个<a4j:commandButton> ajax提交,并提供一个oncomplete属性给它javascript成功提交后执行。这个javascript可以用你的模态id作为参数来调用Richfaces.hideModalPanel('pnl');

相关内容

  • 没有找到相关文章

最新更新