Не удается найти дескриптор библиотеки тегов springframework

Я пытаюсь следовать примеру Spring JPetStore, но получаю сообщение об ошибке на страницах JSP в строке, которая ссылается на тег spring тега lib:

Не удается найти дескриптор библиотеки тегов для "http://www.springframework.org/tags"

<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

Каков URL этой библиотеки?

Есть ли способ избежать прямой зависимости от этого URL?

заранее спасибо


person JLBarros    schedule 18.11.2010    source источник
comment
Не могли бы вы дать мне ссылку для загрузки Spring Dependency Jar?   -  person Pallav Raj    schedule 18.08.2015


Ответы (14)


  1. Загрузите банку зависимостей Spring
  2. Поместите его в путь к папке lib /WEB-INF/lib/spring.jar.
  3. Затем откройте файл web.xml и пример кода:

    <taglib>
      <taglib-uri>/WEB-INF/spring.tld</taglib-uri>
      <taglib-location>/WEB-INF/spring.tld</taglib-location>
    </taglib>
    
  4. Затем в taglib указывается, где находится файл jar в вашей системе.

    <%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
    
person Adalarasan Sachithanantham    schedule 19.11.2010
comment
Спасибо за Ваш ответ. Просто нашел такое же решение проблемы и собирался предложить его здесь, когда увидел ваш ответ. - person JLBarros; 19.11.2010
comment
Спасибо за ваш ответ JLBarros. - person Adalarasan Sachithanantham; 19.11.2010
comment
Извлечение TLD из JAR не требуется. - person Steven Benitez; 19.11.2010
comment
Странно. Когда я открыл проект в Eclipse, проект показал эту ошибку. Когда я изменил файл web.xml, ошибка исчезла. Но, учитывая комментарии Стивена Бенитеса, я отменил изменение... и теперь ошибок не показывает! Почему? Я не знаю... - person JLBarros; 19.11.2010
comment
Я добавил пробел в файл web.xml, сохранил, и ошибка была удалена для меня. У меня есть только spring-webmvc.jar в WEB-INF/lib (без объявления tablib) - person Carl Pritchett; 12.12.2011

Я знаю, что это старый вопрос, но библиотека тегов 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, он будет найден автоматически.

person stivlo    schedule 08.12.2011

Удаление пробела между @ и taglib помогло мне: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

person ElPasmo    schedule 18.11.2011
comment
я предполагаю, что удаление пробела вообще ничего не дало. кроме того, что eclipse обнаружил изменение в файле и повторно проверил его. я думаю, если бы вы добавили/убрали пробел в другом месте, это могло бы сработать так же - person Peter Perháč; 17.12.2013
comment
Удаление/добавление пробела сработало только после того, как я добавил необходимые зависимости для taglib. Удаление или добавление пробела не делало ничего, кроме повторной проверки. - person Prabhu; 13.04.2014
comment
У меня тоже сработало, но моя проблема заключалась в том, что %> в конце не имел пробела после закрывающей двойной кавычки. - person Jim Tough; 22.11.2016

Если вы используете maven, используйте эту зависимость:

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.1.4.RELEASE</version>
</dependency>
person Eduardo Chavira    schedule 18.12.2013

TLD должен находиться в домене spring.jar. Ваше приложение не будет зависеть от этого URL-адреса. Оно просто используется как уникальное имя для идентификации библиотеки тегов. С таким же успехом они могли бы сделать URI «/spring-tags», но использование URL-адресов довольно распространено.

person Steven Benitez    schedule 18.11.2010

вам нужно добавить зависимость для Springs MVC

лоток, добавив это в свой помпон

<!-- mvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>3.1.2.RELEASE</version>
</dependency>
person Rubén Fanjul Estrada    schedule 07.08.2012

У меня была такая же проблема с weblogic 12c и maven I при развертывании из eclipse (kepler) (развертывание из консоли не дало ошибок).

Другие решения, приведенные на этой странице, не помогли.

Я извлек файлы spring.tld spring-form.tld из jar-файла spring-webmvc (который я нашел в своем репозитории) в папку web\WEB-INF моего военного модуля;

Я сделал новую сборку; развернул (из eclipse) в weblogic 12c, протестировал приложение, и ошибка исчезла;

Я снова удалил файлы spring.tld spring-form.tld и после удаления; при восстановлении и повторном развертывании приложения ошибка больше не появлялась.

Я дважды проверил, пропали ли файлы во время войны, и их действительно не было.

надеюсь, что это поможет другим с аналогичной проблемой...

person Bamboomy    schedule 11.03.2014

Наконец-то я настроил RAD для создания моего проекта на основе Maven, но при переходе на страницу, использующую taglib Spring, получаю следующее исключение:

JSPG0047E: Не удалось найти библиотеку тегов для uri http://www.springframework.org/tags в com. ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76) ...

То, как я настроил свой EAR, заключалось в том, что все jar-файлы находились в EAR, а не в WEB-INF/lib WAR. Согласно спецификации JSP 2.0, я считаю, что библиотеки тегов ищутся во всех подкаталогах WEB-INF, отсюда и проблема. Мое решение состояло в том, чтобы скопировать файлы tld и поместить в WEB-INF/lib или WEB-INF. Тогда это сработало.

person Stranger    schedule 07.07.2012

Если вам нужна прямая ссылка:

https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/resources/META-INF/spring-form.tld

Или из репозиториев:

JCenter : ссылка

Maven Central : ссылка

И если вам нужна зависимость Gradle:

скомпилировать 'org.springframework:spring-webmvc:4.1.6.RELEASE

Дополнительная информация о пружинной форме: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html

person Xelian    schedule 23.04.2015

Вот еще один случай.

У нас есть несколько портлетов в разных войнах приложений портлетов, и все они используют Spring. Поэтому, чтобы уменьшить размер каждой войны, мы создали общие библиотеки для Spring jar на сервере WebSphere Portal.

Тем не менее, я столкнулся с той же проблемой, что и выше, из-за того, что теги весенней формы не ссылаются на файлы jsp.

Чтобы решить эту проблему, я скопировал файл spring-form.tld в каталог WEB-INF/ и повторно развернул войну, и это сработало.

Надеюсь, это поможет тем, у кого есть такая же проблема, как у меня.

person Uresh Kuruhuri    schedule 24.10.2012

Эта проблема обычно возникает при копировании URL-адреса библиотеки тегов из Интернета. Обычно кавычки "", в которые встроен URL-адрес http://www.springframework.org/tags, могут не быть правильным. Попробуйте удалить кавычки и ввести их вручную. Это решило проблему для меня.

person user7409727    schedule 12.01.2017

Я использовал Spring-Boot, для меня работала вырезка-вставка ниже в Pom.xml. Возможно, файл не был синхронизирован.

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>
person Vikash    schedule 09.06.2017

Основные зависимости для библиотеки тегов:

> <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>
person koberone    schedule 22.01.2019

добавьте внешнюю банку jstl-standard.jar в качестве внешней банки, щелкнув правой кнопкой мыши системные библиотеки JRE в разделе «Настроить путь сборки» -> «Путь сборки». это сработало для меня!

person 2sneha5    schedule 12.06.2020