87

我正在使用 Spring 框架开发 Web 应用程序,但在某些 jsp 页面中出现以下错误。

javax.servlet.ServletException cannot be resolved to a type

我也包括在内servlet-api,但仍然显示相同的错误消息。如何克服这个问题?

4

6 回答 6

275

我想这可能可行,在 Eclipse 中选择您的项目→ 然后单击顶部的项目菜单栏→ 转到属性→ 单击目标运行时→ 现在您必须选中用于运行当前项目的服务器旁边的复选框→ 单击应用→然后单击确定按钮。就是这样,试一试。

于 2013-04-03T08:12:53.927 回答
27

在我看来,eclipse 无法识别 java ee web api(servlet、el 等)。如果您使用的是 maven 并且不想使用指定的服务器运行时配置 eclipse,请将以下依赖项放在您的 web 项目 pom 中:

<dependency>  
    <groupId>javax</groupId>    
    <artifactId>javaee-web-api</artifactId>    
    <version>7.0</version> <!-- Put here the version of your Java EE app, in my case 7.0 -->
    <scope>provided</scope>
</dependency>
于 2014-12-08T12:03:55.493 回答
12

导入 javax.servlet

第1步

转到项目的属性(使用Alt+Enter或右键单击)

第2步

检查Targeted Runtime下的Apache Tomcat v7.0,它可以工作。

来源:https ://stackoverflow.com/a/9287149

于 2015-01-19T06:36:17.600 回答
3

从右键单击项目添加服务器(tomcat)并选择“属性”转到“项目事实”“运行时选项卡”其他明智的“目标运行时”

如果是 maven pom.xml 问题,请尝试将其添加到 pom.xml

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

它将解决问题。

于 2017-11-05T14:36:54.773 回答
0

正如几乎所有人所说,添加运行时服务将解决问题。但是,如果没有运行时服务,或者您不喜欢Google App Engine之类的东西,请单击Targeted Runtimes列表右下方的新建按钮并添加新的运行时服务器环境。然后检查它并单击确定并让编译器再次编译您的项目。 希望能帮助到你 ;)

于 2016-07-05T13:35:14.077 回答
0
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>javax.servlet.jsp-api</artifactId>
    <version>2.3.2-b02</version>
    <scope>provided</scope>
</dependency>

为我工作。

于 2017-10-29T18:45:11.037 回答