springmvc表单提交,实体类组装问题 15

项目开发中使用了springmvc框架,其中用到了表单,表单的参数都是对应实体的属性的,后台获取到组装后的实体时发现页面上没有的参数对应的属性均被设置成null了,如何做... 项目开发中使用了springmvc框架,其中用到了表单,表单的参数都是对应实体的属性的,后台获取到组装后的实体时发现页面上没有的参数对应的属性均被设置成null了,如何做到后台实体组装时只组装页面上有的参数,没有的话就自动忽略? 展开
 我来答
jpsbbt
2014-12-18 · TA获得超过1548个赞
知道小有建树答主
回答量:1060
采纳率:100%
帮助的人:532万
展开全部
请问你的目的是什么呢?
是否可以忽略我不清楚,不过即使可以做到的话,实体属性中没有被表单对应上的非基本类型的属性的值还会是null的,这是Java自身的机制决定的。当然,就算实体属性都是基本类型,那也是有初始值的,比如int、long 初始值是0,boolean的初始值是false。
追问
目的是更新一条数据不会把所有的字段改了。像这种设值为null,会将其他字段改为null。就想知道springmvc有没有像Hibernate的@org.hibernate.annotations.Entity(dynamicUpdate = true,dynamicInsert = true)
这种注解,新增、修改只操作传入的字段,其他字段不变,不会自己设值为null。
追答
  1. 可否简单说一下你的持久层是如何实现的,比如用到了哪些框架;

  2. 有这么一个做法:页面传递到后台的数据中,包含待修改的数据id,通过id查到待修改的记录,对于传递过来的非null的属性,从新set到待修改的这条数据中,那么就可以保证其它属性不会被修改;

百度网友56658f91a
2014-12-18 · 超过28用户采纳过TA的回答
知道答主
回答量:132
采纳率:0%
帮助的人:39.1万
展开全部
忽略的结果是什么?属性是null?
更多追问追答
追问
组装实体类时没有参数传入就自动设值为null了,那样会更改以前的数据。忽略的意思是实体类自动组装的时候只set页面表单里有的参数,没有的话就相当于把这个实体类的属性屏蔽掉了。这样的话更新实体就不会更新所有的数据了。
追答
这个逻辑不合理,如果实现了这个功能,前台想把某字段置null,怎么办?你可以定义另外一个对象变量,把你要的属性值备份到这个变量不就行了,没必要从框架上想办法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式