Спецификация Java Server Pages 1.2

JSP.7.3.6 Определение Ресурса Пути TLD


Путь ресурса TLD может быть определён из атрибута uri директивы taglib, как показано ниже. В последующем разъяснении “абсолютным URI” называется такой, который начинается с названия протокола и имени хоста, а “относительный URI” даётся так, как указано в , т.е. без протокола и имени хоста.

Все шаги описаны так, будто они выполнялись, но реализация может использовать различные стратегии для получения того же результата.

JSP.7.3.6.1 Вычисление Размещения TLD

Карта taglib, генерированная в Разделах и , может содержать одно или более вхождений <taglib></taglib>. Каждое такое вхождение идентифицируется по TAGLIB_URI, который является значением субэлемента <taglib-uri>. Этот TAGLIB_URI может быть абсолютным URI, либо относительным URI, который начинается (или не начинается) с “/”.

Каждое вхождение определяет также TAGLIB_LOCATION следующим образом:

  • Если субэлемент <taglib-location> это относительный URI, начинающийся с “/”, то TAGLIB_LOCATION является этим URI.
  • Если субэлемент <taglib-location> это относительный URI, не начинающийся с “/”, то TAGLIB_LOCATION является разрешением этого URI относительно /WEB-INF/web.xml (результатом этого разрешения является относительный URI, начинающийся с “/”).
  • JSP.7.3.6.2 Вычисление Ресурса Пути TLD

    Здесь показано, как разрешить директиву taglib для вычисления пути ресурса TLD на базе значения атрибута uri директивы taglib.

  • Если uri является ABS_URI, абсолютным URI. Идёт поиск в карте taglib вхождения, чей TAGLIB_URI является ABS_URI. Если он найден, соответствующее TAGLIB_LOCATION является путём ресурса TLD. Если он не найден, возникает ошибка трансляции.
  • Если uri является ROOT_REL_URI, относительным URI, начинающимся с “/”. Идёт поиск в карте taglib вхождения, чей TAGLIB_URI является ROOT_REL_URI. Если он найден, соответствующее TAGLIB_LOCATION является путём ресурса TLD. Если он не найден, ROOT_REL_URI



    является путём ресурса TLD.

  • Если uri является NOROOT_REL_URI, относительным URI, не начинающимся с “/”. Идёт поиск в карте taglib вхождения, чей TAGLIB_URI является NOROOT_REL_URI. Если он найден, соответствующее TAGLIB_LOCATION является путём ресурса TLD. Если он не найден, NOROOT_REL_URI разрешается относительно текущей JSP-страницы, где появилась директива; это значение (по определению, это спецификация относительного URI, начинающегося с “/”) является путём ресурса TLD.
     



  • JSP.7.3.6.3 Рассмотрение Использования

     


    Явное отображение web. xml предоставляет явное описание библиотек тэгов, используемых в web-приложении.

    Неявное отображение из TLDs означает, что JAR-файл, реализующий библиотеку тэгов, может быть раскрыт и использован непосредственно через его постоянные URI.

    Использование относительного URI в карте taglib даёт возможность задания очень кратких имён в директиве taglib. Например, если карта:

    <taglib>

    <taglib-uri>/myPRlibrary</taglib-uri>

    <taglib-location>/WEB-INF/tlds/PRlibrary_1_4.tld</taglib-location>

    </taglib>

    тогда она может использоваться как:

    <%@ taglib uri=”/myPRlibrary” prefix=”x” %>

    Наконец, правило отката/fallback (запасной вариант) позволяет директиве taglib ссылаться непосредственно к TLD. Это чрезвычайно хорошо подходит для ускоренной разработки в ущерб гибкости и экономии.

    Например, в предыдущем случае оно делает возможным:

    <%@ taglib uri=”/WEB-INF/tlds/PRlibrary_1_4.tld” prefix=”x” %>


    Содержание раздела