找不到springframework的标签库描述符
Posted
技术标签:
【中文标题】找不到springframework的标签库描述符【英文标题】:Can not find the tag library descriptor of springframework 【发布时间】:2011-05-12 06:35:54 【问题描述】:我正在尝试遵循 spring JPetStore 的示例,但在引用 lib 标记 spring 的行中的 JSP 页面中出现错误:
找不到“http://www.springframework.org/tags”的标签库描述符
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
这个库的 URL 是什么?
有什么办法可以避免直接依赖这个网址?
提前致谢
【问题讨论】:
你能告诉我下载 Spring Dependency Jar 的链接吗? 【参考方案1】:通过右键单击配置构建路径下的JRE系统库->构建路径,将jstl-standard.jar的外部jar添加为外部jar。 它对我有用!
【讨论】:
【参考方案2】:标签库的核心依赖:
> <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>
【讨论】:
【参考方案3】:我使用的是 Spring-Boot,对我来说,在 Pom.xml 中的以下剪切粘贴有效。可能是文件未同步。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
【讨论】:
【参考方案4】:从 Internet 复制粘贴标签库 URL 时通常会出现此问题。通常,嵌入 URL http://www.springframework.org/tags 的引号 ""
可能不正确。尝试删除引号并手动键入它们。这为我解决了这个问题。
【讨论】:
【参考方案5】:如果你想要直接链接:
https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/resources/META-INF/spring-form.tld
或来自回购:
JCenter:link
Maven 中心:link
如果你需要作为 Gradle 依赖项:
编译'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
【讨论】:
【参考方案6】:我最初在从 eclipse (kepler) 部署时遇到了与 weblogic 12c 和 maven 相同的问题(从控制台部署没有错误)。
此页面上提供的其他解决方案没有帮助。
我在我的war模块的web\WEB-INF文件夹中提取了spring-webmvc jar(我在我的存储库中找到)的spring.tld spring-form.tld文件;
我做了一个全新的构建;部署(从eclipse)到weblogic 12c,测试应用程序,错误消失了;
我在删除后再次删除了 spring.tld spring-form.tld 文件;重新构建和重新部署应用程序,错误没有再次出现。
我仔细检查了这些文件是否在战争中消失了,它们确实不存在。
希望这可以帮助其他有类似问题的人...
【讨论】:
【参考方案7】:如果您使用的是 maven,请使用此依赖项:
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>3.1.4.RELEASE</version>
</dependency>
【讨论】:
【参考方案8】:-
下载Spring依赖jar
放到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文件在你系统中的位置。
<%@ taglib prefix="spring" uri="/WEB-INF/spring.tld" %>
【讨论】:
感谢您的回答。刚刚找到了相同的问题解决方案,当我看到您的回复时将在此处提供它 感谢您的回复 JLBarros。 不需要从 JAR 中提取 TLD。 这很奇怪。当我在 Eclipse 中打开项目时,项目显示此错误。当我修改 web.xml 时,错误消失了。但是鉴于 Steven Benitez 的 cmets,我收回了更改......现在没有显示错误!为什么?我不知道... 我在 web.xml 文件中添加了一个空格,保存并为我删除了错误。我只有 WEB-INF/lib 中的 spring-webmvc.jar(没有 tablib 声明)【参考方案9】:这是另一种情况。
我们在不同的 portlet 应用程序战争中有几个 portlet,它们都使用 spring。因此,为了减少每次战争的规模,我们在 WebSphere Portal 服务器中为 spring jar 创建了共享库。
但是,我遇到了与上述相同的问题,即没有从 jsp 文件中引用 spring 表单标签。
为了解决,我将spring-form.tld文件复制到WEB-INF/目录下,重新部署war,果然奏效了。
希望对和我有类似问题的人有所帮助。
【讨论】:
【参考方案10】:我最终配置 RAD 来构建基于 Maven 的项目,但是当我导航到使用 Spring taglib 的页面时遇到以下异常:
JSPG0047E: 找不到 uri 的标记库 http://www.springframework.org/tags 在 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 下。然后它就起作用了。
【讨论】:
【参考方案11】:你必须为springs mvc添加依赖
在你的 pom 中添加它
<!-- mvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>3.1.2.RELEASE</version>
</dependency>
【讨论】:
【参考方案12】:我知道这是一个老问题,但标签库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,只需将该 jar 添加到您的类路径中。在任何情况下都不需要直接引用 tld 文件,它会自动找到。
【讨论】:
【参考方案13】:删除 @ 和 taglib 之间的空格对我有用:<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
【讨论】:
我的猜测是删除空间根本没有做任何事情。除了确保 eclipse 对文件进行“更改”并重新验证之外。我认为如果您在其他地方添加/删除了一个空间,它可能会起作用 只有在我为 taglib 添加了所需的依赖项后,删除/添加空间才有效。除了重新验证之外,删除或添加空间没有任何作用。 也为我工作,但我的问题是最后的%>
在结束双引号后没有空格。【参考方案14】:
TLD 应位于spring.jar
。您的应用程序不会对该 URL 有任何依赖。它只是用作标识标签库的唯一名称。他们也可以将 URI 设为“/spring-tags”,但使用 URL 是很常见的地方。
【讨论】:
以上是关于找不到springframework的标签库描述符的主要内容,如果未能解决你的问题,请参考以下文章
添加“spring-security-taglibs”后jsp中仍然报错:找不到spring security标签的标签库描述符
找不到“http://java.sun.com/jsp/jstl/core”的标签库描述符
如何解决:找不到“http://java.sun.com/jsp/jstl/core”的标签库描述符[重复]
找不到 http://java.sun.com/jsf/facelets 的标记库描述符
找不到类 [org.springframework.orm.hibernate.LocalSessionFactoryBean]