Что такое последовательность поиска 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” %>