Составной компонент — это особый тип шаблона JavaServer Faces, который действует как компонент. Если вы новичок в составных компонентах, ознакомьтесь с Составные компоненты, прежде чем приступить к этой главе.
Вы определяете атрибут составного компонента с помощью тега composite:attribute
. Таблица 14-1 содержит список часто используемых атрибутов этого тега.
Таблица 14-1. Часто используемые атрибуты составного тега
Атрибут |
Описание |
name
|
Задаёт имя атрибута составного компонента, который будет использоваться на странице. В качестве альтернативы, атрибут name может указывать стандартные обработчики событий, такие как action , actionListener и Managed-бин. |
default
|
Определяет значение по умолчанию атрибута составного компонента. |
required
|
Указывает, является ли атрибут обязательным для заполнения. |
method-signature
|
Указывает дочерний класс java.lang.Object в качестве типа атрибута составного компонента. Элемент method-signature объявляет, что атрибут составного компонента является выражением метода. Атрибут type и атрибут method-signature являются взаимоисключающими. Если вы укажете оба, method-signature игнорируется. Тип атрибута по умолчанию — java.lang.Object.
Примечание. Выражения методов похожи на выражения значений, но вместо поддержки динамического извлечения и установки свойств выражения метода поддерживают вызов метода произвольного объекта, передачу указанного набора параметров и возврат результата из вызываемого метода (если есть).
|
type
|
Задаёт полное имя класса в качестве типа атрибута. Атрибуты type и method-signature являются взаимоисключающими. Если вы укажете оба, method-signature игнорируется. Тип атрибута по умолчанию — java.lang.Object. |
Следующий фрагмент кода определяет атрибут составного компонента и присваивает ему значение по умолчанию:
<composite:attribute name="username" default="admin"/>
В следующем фрагменте кода используется элемент method-signature
:
<composite:attribute name="myaction"
method-signature="java.lang.String action()"/>
В следующем фрагменте кода используется элемент type
:
<composite:attribute name="dateofjoining" type="java.util.Date"/>