Вопрос

Кажется, я помню, что читал, что можно объявить директивы taglib, такие как:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

в web.xml. Это устраняет необходимость дублировать эту директиву в каждом файле JSP, где используется taglib. Может кто-нибудь сказать мне , как эти директивы могут быть добавлены в web.xml?

Это было полезно?

Решение

Элемент taglib в web.xml используется не так, как указанная выше директива taglib .

Как сказал Дэвид, директива taglib требуется на каждой странице.

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

Этот тег, который нужно добавить на каждую страницу, выглядит следующим образом:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

Если у вас есть настраиваемая библиотека тегов в пользовательском расположении, вы также можете указать местоположение относительно корня веб-приложения:

 <%@ taglib prefix="ex" uri="/taglib.tld" %>

Дополнительная информация о директиве taglib

Директива taglib из web.xml отображает тег uris в физическое местоположение вашего taglib. Начиная с JSP 2.0 это необязательно, так как совместимые контейнеры будут искать набор стандартных расположений, чтобы попытаться автоматически обнаружить taglib: / WEB-INF и его подкаталоги, / META-INF, а также для файлов JAR.

В web.xml это выглядит так:

<taglib>
  <taglib-uri>
    http://www.example.com/taglib
  </taglib-uri>
  <taglib-location>
    /taglib.tld
  </taglib-location>
</taglib>

И ссылка на taglib указана на странице JSP следующим образом (директива taglib на каждой странице неизбежна!):

<%@ taglib prefix="ex" uri="http://www.example.com/taglib" %>

Это эквивалентно второму примеру, который я привел для директивы taglib выше. Самая большая разница в том, как вы указываете на местоположение taglib.

Эта страница содержит немного больше информации.

Другие советы

Извините, вы слегка ошибаетесь. Если страница использует taglib, вы должны иметь директиву taglib для нее на странице. Вы можете поместить общие директивы taglib во включаемый файл, который все ваши страницы включают в директиву include, но во время компиляции директива taglib должна быть там.

Я предпочитаю НЕ иметь элементы taglib в web.xml, а вместо этого иметь директиву taglib, указав значение URI, которое используется в " uri " элемент в TLD, который находится внутри файла jar taglib в вашем WEB-INF / lib.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top