useBean类属性值无效问题的解决

一、解决办法:

把在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!)。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值