0

我有一个 Primefaces 对话框,其中包含一个带有以下完整规则的“保存”按钮:

<p:dialog id="dialogId" widgetVar="dialogWidget">
     ...
    <p:commandButton value="Save" async="true"
                     oncomplete="if (!args.validationFailed &amp;&amp; #{xp:hasNoMessagesToDisplay(dialogId)}) dialogWidget.hide()" 
                     partialSubmit="true" process="dialog"/> 

</p:dialog>

#{xp:hasNoMessagesToDisplay}是一个自定义 EL 函数,用于检查是否有与指定的 dialogId 关联的任何 FacesMessage。问题是这个函数的评估只发生在为对话框呈现 HTML 时(例如在初始页面加载时)。我需要在评估 oncomplete Javascript 时评估该函数(即在运行中)。

是否可以扩展 Primefaces“args”Javascript 对象以包含其他信息,或者有哪些替代方法?

4

1 回答 1

1

从这篇文章中得到了一个想法,它给了我一个解决方案:

FacesContext.getCurrentInstance().validationFailed();在创建对话框的 FacesMessage 以指示 JSF 验证失败时使用,因此

oncomplete="if (!args.validationFailed) dialogwidget.hide()"

足够了。我不确定这有什么影响,我想我只需要拭目以待......

于 2013-03-05T21:54:50.020 回答