1

我正在从一种形式调用弹出窗口。该弹出窗口有另一种形式。弹出窗口显示,但弹出窗口内有一个选择框未按预期工作。如果选择框中的值是从支持 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>
4

1 回答 1

0

jsf复杂,移到Angularjs

于 2014-10-19T03:26:56.190 回答