1

1 つのフォームからポップアップを呼び出しています。そのポップアップには別のフォームがあります。ポップアップが表示されますが、ポップアップ内に選択ボックスがあり、期待どおりに機能していません。選択ボックスの値がバッキング Bean から動的に入力される場合、値変更イベントはそれらの値に対して呼び出されません。このイベントは、ハードコードされた に対してのみ呼び出され<selectItem />ます。以下のサンプル コードを参照してください。そのため、itemLabel="1"メソッドのみが呼び出されます。itemLabel="2"fBean.onChange

ライフサイクル フェーズは、動的な選択項目の値の変更については完了していません。最初のフェーズは次のとおりです。

開始フェーズ RESTORE_VIEW 1 終了
フェーズ RESTORE_VIEW 1
開始フェーズ RENDER_RESPONSE 6
終了フェーズ RENDER_RESPONSE 6

次回以降は、次のフェーズも途中に追加 さ


ます 。


試してみ<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 に答える