Не удается найти дескриптор библиотеки тегов springframework
Я пытаюсь следовать примеру spring JPetStore, но я получаю ошибку на страницах JSP в строке, которая ссылается на тег lib spring:
не могу найти тег дескриптора библиотеки "http://www.springframework.org/tags"
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
каков URL-адрес этой библиотеки?
есть ли способ избежать прямой зависимости от этого URL-адреса?
спасибо заранее
12 ответов
- загрузите банку зависимостей Spring
- поместите его в папку lib путь /WEB-INF/lib / spring.Джар
-
затем откройте веб.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" %>
Я знаю, что это старый вопрос, но библиотека тегов 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, он будет найден автоматически.
удаление пространства между @ и taglib сделал трюк для меня: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
Если вы используете maven, используйте эту зависимость:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.1.4.RELEASE</version>
</dependency>
TLD должен быть расположен в spring.jar
. Ваше приложение не будет зависеть от этого URL-адреса. Он просто используется как уникальное имя для идентификации библиотеки тегов. Они могли бы также сделать URI "/ spring-tags", но использование URL-адресов довольно распространено.
вы должны добавить зависимость для springs MVC
лоток, добавляющий это в ваш pom
<!-- mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
У меня была такая же проблема с weblogic 12c и maven I изначально при развертывании из eclipse (Kepler) (развертывание с консоли не дало ошибок).
другие решения, приведенные на этой странице, не помогли.
я извлек весна.дву весна-форме.tld файлы spring-webmvc jar (которые я нашел в своем репозитории) в папке web\WEB-INF моего модуля war;
Я сделал новую сборку; развернут (из eclipse) в weblogic 12c, протестировал приложение и ошибка исчезли;
Я убрал весна.дву весна-форме.tld файлы и после удаления; восстановление и повторное развертывание приложения ошибка не появится снова.
Я дважды проверил, исчезли ли файлы во время войны,и их действительно не было.
надеюсь, это поможет другим с аналогичной проблемой...
Я, наконец, настроил RAD для создания моего проекта на основе Maven, но получал следующее исключение при переходе на страницу, использующую Spring taglib:
JSPG0047E: не удается найти библиотеку тегов для uri http://www.springframework.org/tags at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76) ...
кстати я настроил ухо, все банки были в ухе, а не в военной WEB-INF / lib. Согласно спецификации jsp 2.0, Я считаю, что библиотеки тегов ищутся во всех подкаталогах WEB-INF, следовательно, проблема. Моим решением было скопировать файлы tld и поместить их под WEB-INF/lib или WEB-INF.. Потом сработало.
Если вы хотите прямую ссылку:
или из РЕПО:
JCenter : ссылке
Maven Central : ссылке
и если вам нужна зависимость Gradle:
компиляции орг.springframework: spring-webmvc: 4.1.6.Отпустите
дополнительная информация о spring-form: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html
вот еще один случай.
У нас есть несколько портлетов в разных приложениях портлетов, и все они используют spring. Поэтому, чтобы уменьшить размер каждой войны, мы создали общие библиотеки для spring jars на сервере WebSphere Portal.
тем не менее, я столкнулся с той же проблемой, что и выше, не имея тегов spring form, ссылающихся на файлы jsp.
для того, чтобы решить, я скопировал spring-form.файл tld в каталог WEB-INF/ и это сработало.
надеюсь, что это поможет для тех, кто имеет аналогичную проблему, как моя.
эта проблема обычно появляется при копировании вставки тега lib URL из интернета. Обычно котировки ""
в котором URL http://www.springframework.org/tags встроен может быть неправильным. Попробуйте удалить кавычки и введите их вручную. Это решило проблему для меня.
я использовал Spring-Boot, для меня вырезать-вставить ниже в Pom.xml работал. Возможно, файл не синхронизирован.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>