Хорошо, возможно, я неправильно понимаю составные компоненты JSF (и не должен использовать их для своих целей) - или я еще не до конца их понял ...
Что я пытаюсь сделать:Создайте составной компонент, который будет отображать некоторую HTML-разметку (используя стандартные теги JSF).А атрибуты этих тегов Html вычисляются из параметров, которые определены в интерфейсе компонента (как требуется = true).Вычисление этих атрибутов будет происходить в простом базовом компоненте, который находится в компоненте jar.Таким образом, код лицевой стороны будет выглядеть следующим образом:
<cc:interface>
<cc:attribute name="userId" required="true"/>
<cc:attribute name="imageType" required="true"/>
</cc:interface>
<cc:implementation>
<h:graphicImage value="#{imageBean.getImageUrl(cc.attrs.userId, cc.attrs.imageType)}"
height="#{imageBean.getImageHeightAsPixels(cc.attrs.imageType)}"
width="#{imageBean.getImageWidthAsPixels(cc.attrs.imageType)}"/>
</cc:implementation>
Этот материал работает нормально, если он не помещен на страницу использования внутри пользовательского интерфейса: повторите так:
<ui:repeat value="#{usersBean.users}" var="user">
<myCC:image userId="${user.id}" imageType="FULL_56"/>
</ui:repeat>
Теперь, JSFбудет жаловаться, что я не передал значение для обязательного параметра.Теперь мне кажется, что атрибуты, определенные в интерфейсе компонента, можно использовать только как «статический атрибут».Атрибуты, являющиеся выражениями EL, которые правильно оцениваются только после фазы вызова приложения, не могут быть использованы.
Правильно ли это истолковано?Если да, есть ли другие способы передачи «динамических» данных в компонент?Или я на самом деле полностью злоупотребляю составным компонентом здесь?И, может быть, сделать с / х проще?
Спасибо за понимание :-) Торбен