3

多分これはばかげた質問ですが、私は使用します

cc

複合コンポーネントを参照するには、たとえば cc.attrs.randomAttr を使用しますが、

component

暗黙のオブジェクトであり、言われたので使用しましたが、それが何のためにあるのかよくわかりません。誰か説明してくれませんか?

4

1 に答える 1

9

cc評価時に処理されている最上位の複合コンポーネントを指します。

component単に処理されている ui コンポーネントです。

したがって、複合コンポーネント内でccは「親」コンポーネントをcomponent参照し、個々のコンポーネントで使用される場合はその特定のインスタンスを参照します。または単純なケースの場合:

cc== component.getCompositeComponentParent(component)、 component は複合コンポーネントが構築されるコンポーネントです。

たとえば、次の複合コンポーネントを考えてみます。

<html 
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"    
    xmlns:cc="http://java.sun.com/jsf/composite"
>
    <cc:interface/>

    <cc:implementation>

        <h:outputText value="Own ID: #{component.id}, parent composite ID: #{cc.id}" /> <br/>
        <h:outputText value="Own ID: #{component.id}, parent composite ID: #{cc.id}" />

    </cc:implementation>    

</html>

これを Facelet で使用すると、2 つの異なる「独自の」ID、つまり 2 つの outputText コンポーネントの ID が出力されますが、複合 ID は両方の行で同じになります。

複合コンポーネントの複数のネストが含まれる場合、状況が少し複雑になる可能性があることに注意してください。

于 2011-02-26T14:48:59.457 に答える