Что такое последовательность поиска taglib uri?

В каких местах и ​​в каком порядке Tomcat ищет тэги taglib?

Когда требуется файл tld и его описание в web.xml, а когда нет?

1 ответ

Решение

Из глав 7.3.6.2 и 7.3.6.3 спецификации JSP 2.1:

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.

...

JSP.7.3.6.3 Вопросы использования

...

Использование относительных спецификаций 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” %> 

Наконец, резервное правило позволяет директиве taglib напрямую ссылаться на TLD. Такое расположение очень удобно для быстрой разработки за счет меньшей гибкости и подотчетности. Например, в приведенном выше случае он включает:

<%@ taglib uri=”/WEB-INF/tlds/PRlibrary_1_4.tld” prefix=”x” %>
Другие вопросы по тегам