Java Platform, Enterprise Edition (Java EE) 8
Учебник по Java EE

Назад Вперёд Содержание

Определение тега кастомного компонента в дескрипторе библиотеки тегов

Чтобы использовать кастомный тег, вы объявляете его в дескрипторе библиотеки тегов (TLD). Файл TLD определяет, как кастомный тег используется на странице JavaServer Faces. Веб-контейнер использует TLD для валидации тега. Набор тегов, являющихся частью инструментария отрисовки HTML, определён в TLD HTML_BASIC, доступном в стандартной библиотеке тегов HTML JavaServer Faces.

Имя файла TLD должно заканчиваться на taglib.xml. В примере Duke's Bookstore кастомные теги area и map определены в файле web/WEB-INF/bookstore.taglib.xml ,

Все определения тегов должны быть вложены в элемент facelet-taglib в TLD. Каждый тег определяется элементом tag. Вот определения тегов для компонентов area и map:

<facelet-taglib xmlns="http://xmlns.jcp.org/xml/ns/javaee"
...>
    <namespace>http://dukesbookstore</namespace>
    <tag>
        <tag-name>area</tag-name>
        <component>
            <component-type>DemoArea</component-type>
            <renderer-type>DemoArea</renderer-type>
        </component>
    </tag>
    <tag>
        <tag-name>map</tag-name>
        <component>
            <component-type>DemoMap</component-type>
            <renderer-type>DemoMap</renderer-type>
        </component>
    </tag>
</facelet-taglib>

Элемент component-type указывает имя, определённое в аннотации @FacesComponent, а элемент renderer-type определяет rendererType, определеный в аннотации @FacesRenderer.

Элемент facelet-taglib также должен включать элемент namespace, который определяет пространство имён, которое должно быть указано на страницах, использующих кастомный компонент. См. Использование кастомного компонента для получения информации об указании пространства имён на страницах.

Файл TLD находится в каталоге WEB-INF. Кроме того, в дескриптор развёртывания (web.xml) включена запись для идентификации файла дескриптора библиотеки кастомных тегов следующим образом:

    <context-param>
        <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/bookstore.taglib.xml</param-value>
    </context-param>

Назад Вперёд Содержание
Логотип Oracle  Copyright © 2017, Oracle и/или её дочерних компаний. Все права защищены. Версия перевода 1.0.5 (Java EE Tutorial — русскоязычная версия)