我正在 IntelliJ 中使用 Google App Engine。我正在尝试在 JSP 中使用 JSTL 标记。我尝试了在互联网上找到的两个不同的 URI,但它们都给了我错误:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
和
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
它会将 URL 变红并表示无法解析 taglib。我尝试删除 URL 的不同部分,看看 Ctrl-Space 是否能给我任何自动完成功能,但没有运气。
我需要做什么才能使这项工作成功?
确保将 JSTL 库 jar 添加到模块依赖项。
将这样的内容添加到
pom.xml
节点下的 <dependencies>
中(您正在使用 maven,对吧?):
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>2.5</version>
</dependency>
对于 gradle 和其他构建系统,请参阅 https://mvnrepository.com/artifact/javax.servlet/servlet-api/2.5
此外,请确保为您的项目选择合适的版本。要查看所有可用版本,请检查此处。
就我而言,我必须从 apache (https://tomcat.apache.org/taglibs/standard/) 下载 .jar 并添加到我的项目依赖项中。
File > Project Structure > Modules > Dependencies
为了在 IntelliJ IDEA Community 和 Ultimate 版本中使用 JSTL 标签,我们需要添加
jstl
和 jstl-api
依赖项。
如果您使用的是 Tomcat 10.1.12:
<dependency>
<groupId>jakarta.servlet.jsp.jstl</groupId>
<artifactId>jakarta.servlet.jsp.jstl-api</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>jakarta.servlet.jsp.jstl</artifactId>
<version>2.0.0</version>
</dependency>
如果您使用的是 Tomcat 9:
<dependency>
<groupId>javax.servlet.jsp.jstl</groupId>
<artifactId>javax.servlet.jsp.jstl-api</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>1.2.6</version>
</dependency>
并且不要忘记在重新启动 IDE 之前在 jsp 页面顶部添加 taglib 指令:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>