我正在使用 PrimeFaces<p:dialog>启动弹出 html 页面并<p:commandButton>关闭它:
这是按下确定按钮时我所做的:
<p:commandButton id="submitButton"
value="OK"
actionListener="#{MultiFileSelectMgmtBean.actionOk}"
update=":formID:fileTreeID"
oncomplete="dlg1.hide();"/>
问题是fileTreeID在动作监听器完成之前更新。我如何强制actionOk()先被调用,然后再fileTreeID被更新?
编辑:
问题是弹出页面 B ( BackingBeanB) 需要计算并保存父页面 A 在其BackingBeanA::BackingBeanA构造函数中加载和使用的一些值。发生的情况是父页面 A 是在子页面 B 调用它之前BackingBeanB::actionOk()构建的。需要更新的组件fileTreeID在页面 A 中,并且依赖于页面 A 构造函数中计算的值,因此它使用旧值进行更新,而不是使用要计算的新值进行更新BackingBeanB::actionOk()。