В чем разница между #{cc.foo} и #{cc.attrs.foo}?
Я пытаюсь добавить что-то в составной компонент, созданный кем-то другим, и есть #{cc.foo}
там. Я не могу найти где foo
определяется, даже делая grep по всей базе кода.
В чем разница между cc.attrs.foo
а также cc.foo
в общем?
РЕДАКТИРОВАТЬ Я нашел это в какой-то банке, поэтому я не увидел его в поиске. Тем не менее вопрос в целом остается. Спасибо
1 ответ
Что именно foo
? Композитные компоненты (как и другие UIComponent
s) иметь определенные предварительно определенные свойства: например, #{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>
раздел файла компонента компоста.