jsf разница между неявными объектами cc и компонентом - PullRequest
3 голосов
/ 26 февраля 2011

Может быть, это глупый вопрос, но я использую

cc

для ссылки на составной компонент, например cc.attrs.randomAttr, но я также видел

component

неявный объект, и я использовал его, потому что мне сказали, но я действительно не понимаю, для чего он.Кто-нибудь может объяснить, пожалуйста?

1 Ответ

9 голосов
/ 26 февраля 2011

cc относится к составному компоненту верхнего уровня, который обрабатывается во время оценки.

component - это просто обрабатываемый компонент пользовательского интерфейса.

Таким образом, когда внутри составного компонента, cc относится к «родительскому» компоненту, тогда как component при использовании в отдельном компоненте относится к этому конкретному экземпляру. Или для простых случаев:

cc == component.getCompositeComponentParent(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 разных «собственных» идентификатора, а именно два компонента outputText, в то время как составной идентификатор будет одинаковым в обеих строках.

Обратите внимание, что все может стать немного сложнее, когда задействовано несколько вложений составных компонентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...