我是春天尝试创建应用程序的新手,以便我可以了解它的工作原理。但是当我编写代码Eclipse IDE gives
无法解析javax.servlet.http.HttpServletResponse类型。它是从所需的.class文件间接引用的
这是我的班级
package testPackage;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.SimpleFormController;
import domain.serviceLayer.UserService;
import domain.userDetails.User;
@SuppressWarnings("deprecation")
public class UserLoginFormController extends SimpleFormController {
private UserService userService;
public UserLoginFormController() {
setCommandClass(User.class);
setCommandName("user");
}
public void setUserService(UserService userService) {
this.userService = userService;
}
@Override
public ModelAndView onSubmit(Object command) throws Exception {
// TODO Auto-generated method stub
User user = (User) command;
userService.add(user);
ModelAndView modelAndView = new ModelAndView("success", "user", user);
return modelAndView;
}
}
和pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>learnSimpleFormController</groupId>
<artifactId>learnSimpleFormController</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<properties>
<spring.version>3.2.3.RELEASE</spring.version>
</properties>
<dependencies>
<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
</dependencies>
<build>
<finalName>learnSimpleFormController</finalName>
</build>
</project>
请问有什么问题以及如何删除该错误
答案 0 :(得分:2)
你的项目没有引用servlet.jar所以只需在你的pom中添加这个依赖
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-servlet_2.5_spec</artifactId>
<version>1.2</version>
</dependency>
答案 1 :(得分:2)
您的项目不是指任何运行时环境。 您可以执行以下操作:在您的类中导入jar文件:
import javax.servlet.http.HttpServletResponse
添加Apache Tomcat库如下:
项目&gt;属性&gt; Java构建路径&gt;图书馆&gt;添加库&gt;服务器运行时&gt;下一个&gt; Apache Tomcat v 6.0&gt;完成&gt;确定
答案 2 :(得分:0)
我有同样的例外。 我使用的是spring-boot 1.5.3.RELEASE,但我的同事正在使用spring-boot 1.5.4.RELEASE。
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
所以当我得到他的代码时,我得到了这个例外。
可能在我的电脑上我有旧的maven jar文件的spring boot和maven无法更新那些jar文件。 即使我从.m2文件夹中删除了spring-boot的所有文件夹,但仍然生成相同的错误
最后,我通过将pom.xml中的弹簧启动版本从1.5.4更改为1.5.3来获得解决方案。