找不到springframework的标签库描述符

时间:2010-11-18 20:19:25

标签: java spring jsp spring-mvc jsp-tags

我正在尝试使用spring JPetStore的示例,但是在引用lib标签spring的行中的JSP页面中出现错误:

无法找到“http://www.springframework.org/tags”的标记库描述符

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

这个图书馆的网址是什么?

有没有办法避免直接依赖此网址?

提前致谢

13 个答案:

答案 0 :(得分:17)

我知道这是一个老问题,但标记库http://www.springframework.org/tagsspring-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,只需将jar添加到类路径中即可。在任何情况下,都没有必要直接引用tld文件,它会自动找到。

答案 1 :(得分:13)

  1. 下载Spring依赖jar
  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" %>
    

答案 2 :(得分:12)

删除 @ taglib 之间的空间对我来说很有用:<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>

答案 3 :(得分:10)

如果您正在使用maven,请使用此依赖项:

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

答案 4 :(得分:3)

TLD应位于spring.jar。您的应用程序不会依赖该URL。它仅用作标识标记库的唯一名称。他们也可以制作URI“/ spring-tags”,但使用URL非常常见。

答案 5 :(得分:3)

你必须为spring mvc

添加依赖项

托盘在你的pom中添加

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

答案 6 :(得分:1)

我最终将RAD配置为构建基于Maven的项目,但在导航到使用Spring标记库的页面时遇到以下异常:

  

JSPG0047E:无法找到uri的标记库   http://www.springframework.org/tags at   com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76)   ...

我配置EAR的方式,所有的jar都在EAR中,而不是在WAR的WEB-INF / lib中。根据JSP 2.0规范,我相信在WEB-INF的所有子目录中都会搜索标记库,因此存在问题。我的解决方案是复制tld文件并放在WEB-INF / lib或WEB-INF下。然后就可以了。

答案 7 :(得分:1)

如果您想要直接链接:

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

或者来自回购:

JCenter link

Maven Central link

如果你需要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

答案 8 :(得分:0)

这是另一种情况。

我们在不同的portlet应用程序战中有几个portlet,所有这些都使用spring。因此,为了减少每次战争的规模,我们在WebSphere Portal服务器中为spring jar创建了共享库。

但是,我遇到了与上面没有从jsp文件中引用spring form标签相同的问题。

为了解决这个问题,我已经将spring-form.tld文件复制到了WEB-INF /目录中并重新部署了战争并且运行良好。

希望对与我有类似问题的人有所帮助。

答案 9 :(得分:0)

从Internet上复制粘贴标记lib URL时,通常会出现此问题。通常,嵌入了URL http://www.springframework.org/tags的引号""可能不正确。尝试删除引号并手动键入它们。这解决了我的问题。

答案 10 :(得分:0)

我使用的是Spring-Boot,对于我在Pom.xml下面的剪贴工作。可能是文件未同步。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>

答案 11 :(得分:0)

标记库的核心依赖性:

> <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>

答案 12 :(得分:0)

通过右键单击配置构建路径->构建路径下的JRE系统库,将jstl-standard.jar的外部jar添加为外部jar。 它对我有用!