簡體   English   中英

不完整的JavaScript在執行時不會重新評估EL表達式

[英]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 &amp;&amp; #{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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM