IntelliJ 中的 JSTL 在 JSP 中给出错误

问题描述 投票:0回答:5

我正在 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 是否能给我任何自动完成功能,但没有运气。

我需要做什么才能使这项工作成功?

java google-app-engine intellij-idea jstl
5个回答
27
投票

确保将 JSTL 库 jar 添加到模块依赖项


14
投票

将这样的内容添加到

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

此外,请确保为您的项目选择合适的版本。要查看所有可用版本,请检查此处


0
投票

就我而言,我必须从 apache (https://tomcat.apache.org/taglibs/standard/) 下载 .jar 并添加到我的项目依赖项中。

File > Project Structure > Modules > Dependencies

0
投票

我通过在库中添加

jstl-1.2
解决了这个问题。

  • 右键单击“项目”
  • 然后进入“打开模块设置”
  • 然后在“libraries”中点击“+”,然后“add with maven”
  • 单击复选框下载到文件夹中,更改

    .../WEB-INF/lib
    的文件夹路径(创建
    lib
    文件夹)


0
投票

为了在 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" %>
© www.soinside.com 2019 - 2024. All rights reserved.