Jfinal 数据保存问题

@Jfinal前端有如下html
 <input  type="checkbox" name="qjt.lbj"  value='1'     />病假 </br>
 <input  type="checkbox" name="qjt.lsj"  value='0'     />事假 </br>
 <input  type="checkbox" name="qjt.lnj"  value='0'     />年假 </br>

后台用getModel取参,然后Model的update方法

发现只有当checkbox 为选中状态时,生成的SQL update语句才包含有此字段,

如:

lbj选中时 生成的SQL语句为: update  qjt  set no=?, lbj=?  where id=?

lbj不选中时 生成的SQL语句为: update  qjt  set no=? where id=?  (i不包含lbj这个字段 了)

我原来是选中,现在想修改请假类别去掉某一类别的勾选就不更新了吗?还是我用的方法不对?

评论区

JFinal

2018-10-14 10:13

三个 input 的 type 都不对,改成: type="radio"

三个 input 的 name 也都不对,改成完全一样,例如改成:qjt.type。 数据库弄个 type 字段,表明是请假的类型,而不是三个字段

最后,单步调试看数据据,这个纯 html 问题

fox

2018-10-14 11:10

@JFinal 不能是radio, 后台对应的是三个字段。我用getPara()能获取到参数

JFinal

2018-10-14 11:44

@fox 那就变成了一个 getBean 、getModel 的传统问题了,将字段对应好即可

fox

2018-10-14 12:39

@JFinal 对应好了呀,只有选中的才能生成update SQL ,没选中的update语句中没有此字段信息

fox

2018-10-14 12:43

我也分开测试过,一次选一个提交,观察生成的SQL update语句就有这个问题,原来选中某一个,现在去掉,生成的SQL反而不更新 (如:),这不是很有问题吗?

要输就输给追求

2018-10-16 14:37

checkbox就是这样的呀,选中的才有值,没选中的就是null,你看你浏览器的请求。model.update()是不会更新值为null的属性

fox

2018-10-16 21:40

@要输就输给追求 不是吧?我原来选中,现在修改去掉改选别的条件为选中,那原先的要更新到后台去呀,如果是你说的那样,就没法更新了。

要输就输给追求

2018-10-17 09:58

@fox 如果要把值改成null只能自己写sql。

fox

2018-10-18 22:21

@要输就输给追求 我用getpara获取再重新set一下,再save就可以了。这里只是想说JFinal 在getModel这种情况的不足.

热门反馈

扫码入社