0

私はこのようなものを持っています

<ui:repeat value="#{val}" id="repeatID" var="var">
    <h:panelGroup layout="block" id="blockForRender">
        <f:ajax execute="@this" render=":#{cc.clientId}:blockForRender"> text </f:ajax>
    </h:panelGroup>
</ui:repeat>

そして、これはエラーになります-「コンポーネントのコンテキストで見つけることができません」。なんで?そして、どうすればこれを行うことができますか?

いいえ、これは機能しません。たぶん、ajaxが他のコンポジットにあるからでしょうか?

<ui:repeat value="#{val}" id="repeatID" var="var">
 <composite:otherComposite id="otherComposite">
    <h:panelGroup layout="block" id="blockForRender">
        <f:ajax execute="@this" render=":#{cc.clientId}:blockForRender"> text </f:ajax>
    </h:panelGroup>
 </composite:otherComposite>
</ui:repeat>
4

1 に答える 1

2

その ID を持つコンポーネントはまったく存在しないためです。<ui:repeat>代わりに、 so のような反復インデックスがプレフィックスとして付けられますccClientId:0:blockForRender。ブラウザーでページを開き、[ソースを表示] を実行して自分で確認します。

絶対 ID 接頭辞を省略して、最も近い親UINamingContainer(<ui:repeat>特定の非常に単純化されたスニペットではそれ自体) との相対関係にします。

<f:ajax ... render="blockForRender">

以下も参照してください。

于 2012-11-14T12:28:45.840 に答える