Подтвердить что ты не робот

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

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

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

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

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

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

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

4b9b3361

Ответ 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>