javax.servlet.jsp.PageContext 无法解析为类型[重复]

Posted

技术标签:

【中文标题】javax.servlet.jsp.PageContext 无法解析为类型[重复]【英文标题】:javax.servlet.jsp.PageContext cannot be resolved to a type [duplicate] 【发布时间】:2012-01-29 23:04:42 【问题描述】:

我在我的 jsp 页面中看到以下错误 -

javax.servlet.jsp.PageContext cannot be resolved to a type
javax.servlet.jsp.JspException cannot be resolved to a type

我看过一篇关于此的帖子,并尝试了一些建议的方法。 BalusC 提供了很好的输入——JSTL1.2 和 Standard.jar 不能一起使用。我这样做了,它解决了一段时间的问题 - 但它再次出现。我不确定我是否还有更多的罐子碰撞。我已将所有 jar 定义为 Maven 中的依赖项。以下是我指定 pom.xml 的依赖项-

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2.1</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.38</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.1.1</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.15</version>
        <exclusions>
            <exclusion>
                <groupId>javax.jms</groupId>
                <artifactId>jms</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jmx</groupId>
                <artifactId>jmxri</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.sun.jdmk</groupId>
                <artifactId>jmxtools</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>1.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.tiles</groupId>
        <artifactId>tiles-jsp</artifactId>
        <version>2.2.2</version>
    </dependency>

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.6</version>
    </dependency>

</dependencies>

【问题讨论】:

我现在无法回答我的问题。现在问题已经解决了。我没有将 JSTL1.2 jar 作为依赖项,而是添加了此链接中指定的 JSTL-API 和 JSTL-IMPL jar andygibson.net/blog/quickbyte/… 如果有人在 Eclipse 中遇到此错误,请检查项目属性 -> 项目构面 -> 动态 Web 模块 -> 运行时 【参考方案1】:

您需要在您的项目中导入 JSP API,这些 API 不包含在 servlet-api 中

在我的项目中,解决方案是:

<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>jsp-api</artifactId>
  <version>2.1</version>
  <scope>provided</scope>
</dependency>

【讨论】:

***.com/questions/7064269/… 似乎您的解决方案引发了不同的错误。[接受的答案]。【参考方案2】:

对我有用的解决方案在this answer 中给出。转到项目属性 > 目标运行时 > 选中运行时复选框(在我的例子中为 Apache Tomcat 7)。 就这样。立即构建项目,一切都会好起来的。

【讨论】:

在 Eclipse/Luna 上也适用于我。我已经包含了处理 Java 依赖项的 servlet-api,只需要告诉 Eclipse 要检查哪个运行时,所有那些烦人的 JSP“错误”就消失了! 这个解决方案对我有用。 它也适用于 Marse 1.1 这适用于 Mac OS X Eclipse,所有这些错误都消失了 为我工作。非常感谢:)【参考方案3】:

假设这是 web 应用程序的 pom...

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

其中一些依赖项应设置为已提供,因为它们是由容器提供的。您不应该将这些与您的应用程序捆绑在一起。见Maven dependency scopes。不这样做可能会导致未定义的行为。

具体提供哪些依赖项取决于容器。

【讨论】:

【参考方案4】:

“这个答案中给出了对我有用的解决方案。转到项目属性 > 目标运行时 > 选中运行时的复选框(在我的例子中是 Apache Tomcat 7)。 就这样。现在就构建项目,一切都会好起来的。”

这个解决方案对我有用。

【讨论】:

以上是关于javax.servlet.jsp.PageContext 无法解析为类型[重复]的主要内容,如果未能解决你的问题,请参考以下文章