0

カスタムコンポーネントを定義し、バインディングを次のように使用しようとしました。

<ui:composition ...>
    <div>
        <f:subview>
            <a4j:outputPanel>
                <h:commandButton id="t1" value="test!" />
                ...
            </a4j:outputPanel>
        </f:subview>
    </div>
</ui:composition>

このコンポーネントは、次のようなバインディング属性を追加するまで正しく機能します。

<h:commandButton id="t1" binding="#{foo}" value="test!" onclick="alert('I am #{id:cid(foo)}'); return false;" />

このコンポーネントは表示されず、このボタンに対応するコードが見つかりません。

誰かが修正を知っていますか?

4

1 に答える 1

1

はい、複数回使用されています

原因があります。は、コンポーネントの一意bindingの参照を参照する必要があります。現在、1つの同じ参照を参照する物理的に複数のコンポーネントがあります。

具体的な機能要件が何であるかはわかりませんが、すでにJavaScriptコンテキスト内にいる場合は、このアプローチは不要であることがよくあります。特定の例は、次のように解決することもできます。

<h:commandButton id="t1" value="test!" onclick="alert('I am ' + id); return false;" />

生成されたHTML要素自体のIDは、つまりJSFコンポーネントのクライアントIDとまったく同じです。

于 2012-06-08T18:14:57.707 に答える