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

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

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

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

каков URL-адрес этой библиотеки?

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

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

12 ответов


  1. загрузите банку зависимостей Spring
  2. поместите его в папку lib путь /WEB-INF/lib / spring.Джар
  3. затем откройте веб.XML и пример кода:

    <taglib>
      <taglib-uri>/WEB-INF/spring.tld</taglib-uri>
      <taglib-location>/WEB-INF/spring.tld</taglib-location>
    </taglib>
    
  4. затем 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.. Потом сработало.


Если вы хотите прямую ссылку:

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

или из РЕПО:

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>