[英]Oncomplete JavaScript does not re-evaluate EL expression at time of execution
我有一個Primefaces對話框,其中包含帶有以下oncomplete規則的“保存”按鈕:
<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}
是一個自定義EL函數,用於檢查是否存在與指定的dialogId相關聯的FacesMessages。 問題在於,僅在為對話框呈現HTML時(例如,在初始頁面加載時)才進行此功能的評估。 我需要在評估oncomplete Javascript時(即在運行中)評估函數。
是否可以擴展Primefaces“ args” Javascript對象以包含其他信息,或者什么是替代方法?
從這篇文章中得到了一個想法,給了我一個解決方案:
使用FacesContext.getCurrentInstance().validationFailed();
當創建對話框的FacesMessages以指示JSF驗證失敗時,
oncomplete="if (!args.validationFailed) dialogwidget.hide()"
足夠了。 我不確定這會帶來什么影響,我只能拭目以待。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.