次の oncomplete ルールを持つ「保存」ボタンを含む Primefaces ダイアログがあります。
<p:dialog id="dialogId" widgetVar="dialogWidget">
...
<p:commandButton value="Save" async="true"
oncomplete="if (!args.validationFailed && #{xp:hasNoMessagesToDisplay(dialogId)}) dialogWidget.hide()"
partialSubmit="true" process="dialog"/>
</p:dialog>
#{xp:hasNoMessagesToDisplay}
指定されたdialogIdに関連付けられたFacesMessagesがあるかどうかを確認するカスタムEL関数です。問題は、この関数の評価が、ダイアログ用に HTML がレンダリングされるとき (最初のページの読み込み時など) にのみ行われることです。oncomplete Javascript が評価されるとき (つまり、その場で) 評価される関数が必要です。
Primefaces の "args" Javascript オブジェクトを拡張して追加情報を含めることは可能ですか、または代替アプローチは何ですか?