一、解决办法:
把在Project Structure-->Module-->项目下的web删掉
新建web,apply,ok
完美解决。
二、情景再现
1. 创建一个普通maven项目,不勾选任何框架模板,右击项目,单击Add Framework Support(添加框架支持)
2. 添加依赖
<dependencies>
<!--JSP依赖-->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.3.3</version>
</dependency>
<!--Servlet依赖-->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
</dependency>
</dependencies>
3. 更改默认Artifacts
默认输出的目录是out,改为target
4. 编写jsp测试代码
<jsp:useBean id="people" class="com.pink.pojo.People" scope="page"/>
<jsp:setProperty name="people" property="id" value="1"/>
<jsp:setProperty name="people" property="name" value="刘大"/>
<jsp:setProperty name="people" property="age" value="3"/>
<jsp:setProperty name="people" property="address" value="北京"/>
id:<jsp:getProperty name="people" property="id"/><br>
姓名:<jsp:getProperty name="people" property="name"/><br>
年龄:<jsp:getProperty name="people" property="age"/><br>
地址:<jsp:getProperty name="people" property="address"/><br>
5.编写对应实体类
package com.pink.pojo;
public class People {
private int id;
private String name;
private int age;
private String address;
public People() {
}
public People(int id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "com.pink.pojo.People{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", address='" + address + '\'' +
'}';
}
}
6.启动测试,发现错误
根据报错信息提示,我去target目录下查看,发现target目录下和WEB-INF目录下均没有classes文件,怪不得会报错,去度娘找了一番,发现有个答主说是iml的问题,我就把iml删了,然后发现我的web目录变成了这样
我心想,芭比Q了,赶紧去Module下添加web支持,谁知道跑起来之后不报错了
你敢信,这什么情况
我又寻思是不是添加web框架支持和开头选框架模板不太一样,我又跑去,新建了一个带有web模板的maven项目,发现人家的目录结构压根跟我们就不一样,人家的webapp直接在main目录下,打包的时候自然是在同一个目录下,当然能找到对应的java bean类了,测试结果也验证了我的猜想。我又从头来了一遍,结果正如最开始的解决办法一样,把web删了重建就好了,鬼知道这是个什么情况。
最后的最后,以上纯属代表个人观点,如果能帮到各位些许,是在下莫大的荣幸,如有错误,敬请指正。(都看到这了点个赞吧各位老爷,respect!)。