2010-11-18 4 views
25

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

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

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

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

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

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

+0

Не могли бы вы рассказать мне ссылку, чтобы загрузить «Весеннюю зависимость»? – Brain

ответ

13
  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 находится в системе ur.

    <%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %> 
    
+0

Спасибо за ваш ответ. Просто нашел то же решение проблемы и собирался предложить его здесь, когда я увидел ваш ответ – JLBarros

+0

Спасибо за ур ответ JLBarros. –

+0

Извлечение ДВУ из JAR не требуется. –

3

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

12

Удаление пространства между @ и TagLib сделал трюк для меня: <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

+2

тоже работал для меня ... Странно, хотя ...:? –

+3

Я предполагаю, что удаление пространства вообще ничего не делало. кроме того, что затмение подхватило «изменение» файла и повторно подтвердило его. я думаю, что если вы добавили/удалили место в другом месте, оно могло бы работать так же. –

+0

Удаление/добавление пространства работало только после того, как я добавил необходимые зависимости для taglib. Удаление или добавление пространства не делало ничего, кроме повторной проверки. – Prabhu

16

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

1

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

3

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

лоток, добавив, что в вашем ПОМ

<!-- mvc --> 
<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.1.2.RELEASE</version> 
</dependency> 
0

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

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

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

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

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

9

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

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-taglibs</artifactId> 
    <version>3.1.4.RELEASE</version> 
</dependency> 
+0

спасибо за это – tbone

2

Я была такая же проблема с WebLogic 12c и мавена я изначально при развертывании из Eclipse (Kepler) (развертывание из консоли не дали никаких ошибок).

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

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

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

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

Я дважды проверял, исчезли ли файлы на войне, и они действительно не присутствовали.

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

1

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

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

Или от Repos:

JCenter: link

Maven Центральный: link

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

компиляции «org.springframework: весна-webmvc: 4.1.6.RELEASE

Больше информации о весенней форме: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html

0

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

0

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

<dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 
Смежные вопросы