如何在WEB-INF文件夹中使用带有JAR的taglibs JSTL / core

时间:2014-04-16 19:45:14

标签: java eclipse maven jstl taglib

目前我在我的JSP页面顶部使用以下标记设置了taglib并正常工作:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

在Maven中我有依赖项:

<dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>2.2.2</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>

    <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
    </dependency> 

我需要我的网络应用程序在没有Internet连接的情况下工作,即不调用taglib中的URI,所以我想我可以下载jstl-1.2.jar并将其放在/ WEB-INF / lib文件夹中。然后我可以将我的标签作为以下内容:

<%@ taglib uri="/WEB-INF/lib/jstl-1.2" prefix="c" %>

但是,这不起作用。它说无法找到标记库描述符。所以我的问题是,如何在WEB-INF文件夹中使用JAR在taglib中使用JSTL,而不是在URI中调用java sun网站?

我是否需要在web.xml中放置任何内容?我是否删除了我的Maven依赖项?我需要在META-INF中添加一些东西吗?

任何帮助将不胜感激!谢谢!

1 个答案:

答案 0 :(得分:7)

中的URI
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

实际上不是对互联网的引用。即使将Jar文件放在WEB-INF / lib /中,您也会将uri保留为该地址。 servlet容器始终在WEB-INF / lib /中查找jar,并且永远不会从http://java.sun.com/jsp/jstl/core下载它。该URI更像是标识taglib的唯一名称。

单击http://java.sun.com/jsp/jstl/core的链接检查自己。那里没有要下载的jar文件。它只是一个标识符。