繁体   English   中英

找不到springframework的标签库描述符

[英]Can not find the tag library descriptor of springframework

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

找不到“http://www.springframework.org/tags”的标签库描述符

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

这个库的网址是什么?

有什么办法可以避免直接依赖这个URL吗?

提前致谢

我知道这是一个老问题,但是标签库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 文件,它会自动找到。

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

删除@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>

您必须为 springs mvc 添加依赖项

托盘在你的 pom 中添加

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

TLD 应位于spring.jar 您的应用程序不会对该 URL 有任何依赖。 它只是用作标识标签库的唯一名称。 他们也可以将 URI 设为“/spring-tags”,但使用 URL 是很常见的地方。

我最初在从 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文件,删除后; 重建和重新部署应用程序,错误没有再次出现。

我仔细检查了这些文件是否在战争中消失了,它们确实不存在。

希望这可以帮助其他有类似问题的人......

我最终配置了 RAD 来构建我的基于 Maven 的项目,但是当我导航到使用 Spring taglib 的页面时遇到以下异常:

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

按照我配置 EAR 的方式,所有 jar 都在 EAR 中,而不是在 WAR 的 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 中心链接

如果您需要 Gradle 依赖项:

编译'org.springframework:spring-webmvc:4.1.6.RELEASE

有关弹簧形式的更多信息: http : //docs.spring.io/spring/docs/current/spring-framework-reference/html/spring-form.tld.html

这是另一个案例。

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

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

为了解决,我已经将 spring-form.tld 文件复制到 WEB-INF/ 目录中,并重新部署了 war 并且它起作用了。

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

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

我正在使用 Spring-Boot,对我来说在 Pom.xml 中剪切粘贴下面的工作。 可能是文件不同步。

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

标签库的核心依赖:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM