jfinal save()方法保存的值全为null

发布于 2021-12-08 01:50:19 字数 1765 浏览 928 评论 7

//后台代码

public void saveRole(){
         Role role = getBean(Role.class,"");
         System.out.println("id="+role.getRoleId());
         System.out.println("name="+role.getRoleName());
         System.out.println("desc="+role.getRoleDesc());
         System.out.println("status="+role.getRoleStatus());
         role.save();
         int id = role.getInt("roleId");
         if(id > 0){
             this.renderText("角色添加成功!");
         }else{
             this.renderText("角色添加失败!");
         }
     }

//打印日志

id=0
name=角色名称
desc=角色说明
status=1
Sql: insert into `roles`() values()

JFinal action report -------- 2017-09-11 14:31:11 ------------------------------
Url         : POST /basic/saveRole
Controller  : cn.myapp.controller.IndexController.(IndexController.java:1)
Method      : saveRole
Parameter   : roleName=角色名称  roleDesc=角色说明  roleStatus=1 

问题描述:

1.页面表单传了3个string类型的参数(name="XXX",不是name="model.XXX"形式)

2.使用getBean(Role.class,"")方式获取对象(属性都有set,get 方法,通过打印属性也确实有值)

3.数据库为mysql,roles表的主键为自增,带条件分页查询操作正常

问题:role对象明明有值,但调用save()方法保存的所有属性值却为null(主键有值,并且还能正常获取到,数据库字段和对象属性一一对应)??

 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

顾忌 2021-12-10 05:23:56

继承了!! 找到问题是save方法保存的值来源于model的attrs;而getBean方法的本质调用的是model里面自定义的setter方法。并不会保存到attrs。很好奇当初大神为啥不在反射执行setter方法method.invoke(bean, value);前保存一份到attrs(model.set(attrName, value);)呢??

无法言说的痛 2021-12-10 05:23:55

Role 这个 bean 是否继承过 Model? 

情栀口红 2021-12-10 05:23:48

和数据并没有什么关系啊,我在保存之前使能够获取到数据的

疾风者 2021-12-10 05:23:34

哈哈哈,带坏了。。。

强烈建议:数据请务必校验后再入库!!!

伪装你 2021-12-10 05:20:29

我的id不管是默认还是手动设置为null,都能插入成功并返回主键,问题是主键以外的其他字段没值

心欲静而疯不止 2021-12-10 05:17:18

这个应该是final的ID的问题,你进sava的方法看下就明白了

吃颗糖壮壮胆 2021-12-08 19:25:47

拜托看到的大神们指导一下咯

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文