我正在从一种形式调用弹出窗口。该弹出窗口有另一种形式。弹出窗口显示,但弹出窗口内有一个选择框未按预期工作。如果选择框中的值是从支持 bean 动态填充的,则不会为这些值调用值更改事件。该事件仅针对硬编码调用<selectItem />
。请参阅下面的示例代码,因此仅用于itemLabel="1"
调用itemLabel="2"
该fBean.onChange
方法。
动态选择项值更改的生命周期阶段不完整:以下是第一次阶段:
开始阶段 RESTORE_VIEW 1
结束阶段 RESTORE_VIEW 1
开始阶段 RENDER_RESPONSE 6
结束阶段 RENDER_RESPONSE 6
下次以后,中间还会添加以下阶段:
START PHASE APPLY_REQUEST_VALUES 2
END PHASE APPLY_REQUEST_VALUES 2
START PHASE PROCESS_VALIDATIONS 3
END PHASE PROCESS_VALIDATIONS 3
我试过<a4j:log />, <h:messages />
了,浏览了 http 帖子,但不知道为什么会这样。将不胜感激任何帮助。谢谢
<h:form id="aForm">
<a4j:outputPanel>
<a4j:commandLink value="show" actionListener="#{aBean.onClick}"
limitRender="true" render=":fForm"
oncomplete="#rich:component('fModalPanel')}.show();"/>
</a4j:outputPanel>
</h:form>
<ui:include src="fPopup.xhtml"/>
<!-- Contents of fPopup.xhtml -->
<rich:popupPanel id="fModalPanel" ...>
<h:form id="fForm">
<h:selectOneMenu value="#{fBean.selected}">
<f:selectItems value="#{fBean.selectItems"/>
<f:selectItem itemLabel="1" itemValue="1"/>
<f:selectItem itemLabel="2" itemValue="2" />
<a4j:ajax event="valueChange"
execute="@this" render="fSubPnl"
limitRender="true"
listener="#{fBean.onChange}"/>
</h:selectOneMenu>
<rich:panel id="fSubPnl">
<h:outputText value="#{fBean.selected}" />
</rich:panel>
</h:form>
</rich:popupPanel>