【问题标题】:Oncomplete JavaScript does not re-evaluate EL expression at time of executionOncomplete JavaScript 不会在执行时重新评估 EL 表达式
【发布时间】:2013-02-20 11:55:12
【问题描述】:

我有一个 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 函数,用于检查是否有任何 FacesMessages 与指定的 dialogId 相关联。问题是这个函数的评估只发生在为对话框呈现 HTML 时(例如在初始页面加载时)。我需要在评估 oncomplete Javascript 时评估函数(即在运行中)。

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

【问题讨论】:

    标签: javascript jsf-2 primefaces el


    【解决方案1】:

    this post 那里得到了一个想法,它给了我一个解决方案:

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

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

    就足够了。我不确定这有什么影响,我想我只能等着看....

    【讨论】:

      猜你喜欢
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-06
      • 1970-01-01
      • 2019-02-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多