Не удается найти дескриптор библиотеки тегов springframework
Я пытаюсь следовать примеру spring JPetStore, но получаю сообщение об ошибке на страницах JSP в строке, которая ссылается на тег lib spring:
Невозможно найти дескриптор библиотеки тегов для "http://www.springframework.org/tags"
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
Каков URL этой библиотеки?
Есть ли способ избежать прямой зависимости от этого URL?
Заранее спасибо
Ответы
Ответ 1
- Загрузите баннер зависимостей Spring
- Поместите его в путь к папке lib/WEB-INF/lib/ spring.jar
-
Затем откройте файл web.xml и пример кода:
<taglib>
<taglib-uri>/WEB-INF/spring.tld</taglib-uri>
<taglib-location>/WEB-INF/spring.tld</taglib-location>
</taglib>
-
Затем отображается taglib, где файл jar находится в системе ur.
<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
Ответ 2
Я знаю, что это старый вопрос, но библиотека тегов http://www.springframework.org/tags
предоставляется пакетом spring-webmvc
. С Maven его можно добавить в проект со следующими строками, которые будут добавлены в pom.xml
<properties>
<spring.version>3.0.6.RELEASE</spring.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
Без Maven просто добавьте эту банку в свой путь к классам. В любом случае нет необходимости напрямую ссылаться на tld файл, он будет автоматически найден.
Ответ 3
Удаление пробела между @и taglib сделало трюк для меня: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
Ответ 4
Если вы используете maven, используйте эту зависимость:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.1.4.RELEASE</version>
</dependency>
Ответ 5
TLD должен располагаться в spring.jar
. У вашего приложения не будет никакой зависимости от этого URL-адреса. Он просто используется как уникальное имя для идентификации библиотеки тегов. Они могли бы также сделать URI "/spring -tags", но использование URL-адресов довольно распространено.
Ответ 6
вам нужно добавить зависимость для springs mvc
добавив, что в вашей pom
<!-- mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
Ответ 7
У меня была такая же проблема с weblogic 12c и maven я изначально при развертывании из eclipse (kepler) (развертывание с консоли не давало никаких ошибок).
Другие решения, приведенные на этой странице, не помогли.
Я извлек spring.tld spring -form.tld файлы из spring -webmvc jar (который я нашел в моем репозитории) в папке web\WEB-INF моего военного модуля;
Я сделал новую сборку; развернутый (из eclipse) в weblogic 12c, протестировал приложение, и ошибка исчезла;
Я удалил файлы spring.tld spring -form.tld снова и после удаления; перестройка и повторное развертывание приложения, ошибка не появилась снова.
Я дважды проверял, исчезли ли файлы на войне, и они действительно не присутствовали.
надеюсь, что это поможет другим с подобной проблемой...
Ответ 8
Наконец, я сконфигурировал RAD для создания моего проекта на основе Maven, но получал следующее исключение, когда я переходил на страницу, использующую Spring taglib:
JSPG0047E: невозможно найти библиотеку тегов для uri http://www.springframework.org/tags в com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76)...
Как я настроил свой EAR, все банки были в EAR, а не в WARs WEB-INF/lib. Согласно спецификации JSP 2.0, я считаю, что библиотеки тегов ищутся во всех подкаталогах WEB-INF, поэтому проблема. Мое решение состояло в том, чтобы скопировать tld файлы и разместить их под WEB-INF/lib или WEB-INF.. Тогда это сработало.
Ответ 9
Если вам нужна прямая ссылка:
https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/resources/META-INF/spring-form.tld
Или из репозиций:
JCenter: ссылка
Maven Central: ссылка
И если вам нужна зависимость Gradle:
compile 'org.springframework: spring -webmvc: 4.1.6.RELEASE
Дополнительная информация о spring -form:
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html
Ответ 10
Вот еще один случай.
У нас есть несколько портлетов в разных приложениях для приложений портлетов, и все они используют spring. Поэтому, чтобы уменьшить размер каждой войны, мы создали общие библиотеки для spring jars на сервере WebSphere Portal.
Однако я столкнулся с той же проблемой, что и выше, из-за отсутствия тегов формы spring, которые ссылаются на файлы jsp.
Чтобы решить проблему, я скопировал файл spring -form.tld в каталог WEB-INF/и переделал войну, и она сработала.
Надеюсь, это поможет любому, кто имеет аналогичную проблему, как моя.
Ответ 11
Эта проблема обычно появляется при копировании, вставляющем URL-адрес тега lib из Интернета. Обычно кавычки ""
, в которые встроен URL http://www.springframework.org/tags, могут быть неверными. Попробуйте удалить кавычки и введите их вручную. Это разрешило проблему для меня.
Ответ 12
Я использовал Spring -Boot, для меня работала вырезанная паста ниже в Pom.xml. Возможно, файл не синхронизирован.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Ответ 13
Основные зависимости для библиотеки тегов:
> <dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>