首页新闻找找看学习计划

ssm整合为何在pojo类的构造方法中为属性赋初值无效?spring问题还是?代码简化如下

0
悬赏园豆:10 [已解决问题] 解决于 2017-05-30 22:37
public class House { 
    private String name; 
    private Integer state; 
public House(){ this.state = 1; } //setter和getter..... } //controller层仅将前台页面传入的参数封装成House对象,未传入state值 public class HouseService { public void save(House house) { System.out.println(house.getState); //state的值为null而不是1, why? } }
Insame的主页 Insame | 初学一级 | 园豆:137
提问于:2017-05-29 21:19
< >
分享
最佳答案
0

前端页面是不是这样

前端的name里的name,state和house对象里的字段相匹配

1)创建一个新的对象的时候,首先在内存申请空间,各种类型有其默认的值,字符串为null,数值型为0

2)之后调用构造函数,所以此时state为1,name为null

3)当controller中的方法接受一个house对象时,spring通过set方法一一匹配,如果你前端页面传入的state为空值的话,此时又将state的值赋为了null

如果你要赋state为1

1)你可以在数据库里default

2)set方法改为如下

收获园豆:10
何甜甜在吗 | 菜鸟二级 |园豆:357 | 2017-05-30 20:21
其他回答(1)
0

如果你想实体的初始值为某个制定值,可以在数据库表字段中直接定义default == ""

Mr_伍先生 | 园豆:24 (初学一级) | 2017-05-30 10:34
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册