在 Maven 项目中添加 jakarta.servlet.jsp.jstl-api 依赖就可以使用jstl了吗
添加 jakarta.servlet.jsp.jstl-api 依赖只是引入 JSTL 的 API 接口,如果要使用 JSTL 的实现,还需要添加对应的 JSTL 实现库,常见的有 jakarta.servlet.jsp.jstl-impl 和 org.glassfish.web:jakarta.servlet.jsp.jstl。此外,还需要在 JSP 页面中引入 JSTL 标签库的声明,如 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
。只有这样,才能在 JSP 页面中使用 JSTL 标签库提供的标签。
maven项目添加jstl实现库 jakarta.servlet.jsp.jstl-impl
要在 Maven 项目中添加 JSTL 实现库,可以按照以下步骤进行操作:
- 在 Maven 项目的 pom.xml 文件中,添加以下依赖项:
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jstl-impl</artifactId>
<version>1.2</version>
</dependency>
此依赖项将下载并添加 Jakarta Servlet JSP JSTL 实现库到您的 Maven 项目中。
- 如果您使用的是 Servlet 容器(如 Tomcat),则需要将以下 JAR 文件添加到您的项目中:
- jakarta.servlet.jsp.jstl-api-1.2.1.jar
- jakarta.servlet.jsp.jstl-1.2.1.jar
这些文件通常可以在 Tomcat 的 lib 目录中找到。请将它们复制到您的项目的 WEB-INF/lib 目录中。
- 在您的 JSP 页面中,使用以下指令引入 JSTL 标签库:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
这将使您可以在 JSP 页面中使用 JSTL 标签库。
现在,您已经成功地将 JSTL 实现库添加到您的 Maven 项目中,并可以在 JSP 页面中使用 JSTL 标签库了。
org.apache.jasper.JasperException: 无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[https://jakarta.ee/jstl/core]
这个错误信息是Apache Jasper(Tomcat服务器中的Servlet编译器)抛出的,通常发生在试图使用JSTL(JavaServer Pages Standard Tag Library)库时遇到问题。JasperException表示在读取配置文件web.xml或应用部署的jar包中找不到指定的资源,即它无法找到https://jakarta.ee/jstl/core
所指的JSTL核心标签库。
JSTL是一个Java语言编写的API,用于简化Java Server Pages (JSP) 中的动态元素处理。web.xml是Web应用程序的部署描述符,其中应该包含关于如何加载第三方库的信息,包括JSTL。如果JSTL库未正确添加到项目classpath或者配置文件中没有正确引用,就会导致这个异常。
解决这个问题,你可以按照以下步骤操作:
确认是否已经正确地将JSTL库(如jstl.jar或standard.jar)添加到了项目的构建路径(对于Maven项目,可能是pom.xml依赖管理部分;对于Gradle项目,是dependencies部分)。
检查web.xml文件,看看是否包含了正确的JSTL库引用,并确保
<taglib>
标签的位置和内容是正确的,例如:<taglib> <taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri> <taglib-location>/WEB-INF/lib/jstl.jar</taglib-location> </taglib>
这里的
taglib-uri
指向JSTL的URI,taglib-location
是指向实际JAR文件的位置。如果使用了WAR包部署,检查war文件内的结构,确保JSTL库也在正确的目录下。
清理并重新构建项目,有时候仅删除服务器的缓存也能解决问题。