我从一个表单调用一个弹出窗口。这个弹出窗口有另一种形式。弹出显示,但有一个选择框内的弹出,这是不按预期工作。如果选择框中的值是从支持bean动态填充的,则不会为这些值调用值更改事件。该事件仅对硬编码的<selectItem />
调用。请参阅下面的示例代码,因此仅对itemLabel="1"
和itemLabel="2"
调用fBean.onChange
方法。
动态选择项值变化的生命周期阶段是不完整的:以下是第一次的阶段:
START PHASE RESTORE_VIEW 1
RESTORE_VIEW 1
RENDER_RESPONSE 6
下一次在中间也添加以下阶段:
APPLY_REQUEST_VALUES
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>
Jsf是复杂的,移动到Angularjs