В дополнение к регистрации кастомных отрисовщиков (как описано в предыдущем разделе), вы также должны зарегистрировать кастомные компоненты, которые обычно связаны с кастомными отрисовщиками. Используйте аннотацию @FacesComponent
, как описано в Создание кастомных классов компонентов, или элемент component
файла конфигурации приложения.
Вот гипотетический элемент component
из файла конфигурации приложения, который регистрирует AreaComponent
:
<component>
<component-type>DemoArea</component-type>
<component-class>
dukesbookstore.components.AreaComponent
</component-class>
<property>
<property-name>alt</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>coords</property-name>
<property-class>java.lang.String</property-class>
</property>
<property>
<property-name>shape</property-name>
<property-class>java.lang.String</property-class>
</property>
</component>
Атрибуты, указанные в теге component
, переопределяют любые параметры в аннотации @FacesComponent
.
Элемент component-type
указывает имя, под которым должен быть зарегистрирован компонент. Другие объекты ссылаются на этот компонент по этому имени. Например, элемент component-type
в конфигурации для AreaComponent
определяет значение DemoArea
, которое соответствует значению, возвращённому методомgetComponentType
класса AreaTag
.
Элемент component-class
указывает полное имя класса компонента. Элементы property
определяют свойства компонента и их типы.