В чем разница между #{cc.foo} и #{cc.attrs.foo}?

Я пытаюсь добавить что-то в составной компонент, созданный кем-то другим, и есть #{cc.foo} там. Я не могу найти где foo определяется, даже делая grep по всей базе кода.

В чем разница между cc.attrs.foo а также cc.foo в общем?

РЕДАКТИРОВАТЬ Я нашел это в какой-то банке, поэтому я не увидел его в поиске. Тем не менее вопрос в целом остается. Спасибо

1 ответ

Что именно foo? Композитные компоненты (как и другие UIComponents) иметь определенные предварительно определенные свойства: например, #{cc.rendered} или же #{cc.clientId} определяются спецификацией Java EE, а не пользователем, поэтому они всегда доступны в составных компонентах.

В общем, #{cc.whatever} будут свойства самого компонента: его идентификатор компонента #{cc.id}, его идентификатор клиента (то есть то, что отображается как id атрибут тега HTML) #{cc.clientID}его родительский компонент #{cc.parent}и т. д. Они предоставляются Java EE. С другой стороны, #{cc.attrs.whatever} предоставляются разработчиком компонента: они будут именованными атрибутами составного компонента: для каждого <composite:attribute name="myAttribute" ... /> в <composite:interface> раздел файла составного компонента, там будет #{cc.attrs.myAttribute} доступны для использования в <composite:implmenentation> раздел файла компонента компоста.

Другие вопросы по тегам