BeanUtils.copyProperties方法遇到null值问题
来源:互联网 发布:郑州大数据培训 编辑:程序博客网 时间:2024/05/18 11:14
转自:http://simen-net.iteye.com/blog/644801
在MVC的开发模式中经常需要将model与pojo的数据绑定,apache和spring的工具包中都有BeanUtils,使用其中的copyProperties方法可以非常方便的进行这些工作,但在实际应用中发现,对于null的处理不太符合个人的需要,例如在进行修改操作中只需要对model中某一项进行修改,那么一般我们在页面上只提交model的ID及需要修改项的值,这个时候使用BeanUtils.copyProperties会将其他的null绑定到pojo中去。为解决这个问题我重写了部分spring BeanUtils的代码如下
public abstract class BeanUtils extends org.springframework.beans.BeanUtils { public static void copyProperties(Object source, Object target) throws BeansException { Assert.notNull(source, "Source must not be null"); Assert.notNull(target, "Target must not be null"); Class<?> actualEditable = target.getClass(); PropertyDescriptor[] targetPds = getPropertyDescriptors(actualEditable); for (PropertyDescriptor targetPd : targetPds) { if (targetPd.getWriteMethod() != null) { PropertyDescriptor sourcePd = getPropertyDescriptor(source.getClass(), targetPd.getName()); if (sourcePd != null && sourcePd.getReadMethod() != null) { try { Method readMethod = sourcePd.getReadMethod(); if (!Modifier.isPublic(readMethod.getDeclaringClass().getModifiers())) { readMethod.setAccessible(true); } Object value = readMethod.invoke(source); // 这里判断以下value是否为空 当然这里也能进行一些特殊要求的处理 例如绑定时格式转换等等 if (value != null) { Method writeMethod = targetPd.getWriteMethod(); if (!Modifier.isPublic(writeMethod.getDeclaringClass().getModifiers())) { writeMethod.setAccessible(true); } writeMethod.invoke(target, value); } } catch (Throwable ex) { throw new FatalBeanException("Could not copy properties from source to target", ex); } } } } }}
- BeanUtils.copyProperties方法遇到null值问题
- BeanUtils.copyProperties方法遇到null值问题
- BeanUtils.copyProperties方法遇到null值问题
- BeanUtils.copyProperties忽略null值
- BeanUtils.copyProperties()方法
- BeanUtils.copyProperties()方法
- BeanUtils.copyProperties 方法
- BeanUtils.copyProperties方法理解
- org.springframework.beans.BeanUtils.copyProperties方法的泛型问题。
- commons-beanutils的copyProperties方法
- commons-beanutils的copyProperties方法
- BeanUtils copyProperties 过滤null记录下
- 类似BeanUtils.copyProperties拷贝对象属性值的方法
- commons-beanutils.jar包中BeanUtils.copyProperties方法对数值型值的注意
- beanUtils.copyProperties
- BeanUtils.copyProperties
- BeanUtils.copyProperties
- BeanUtils.copyProperties()
- 记一下
- javascript中的数组对象(Array)
- Citrix XenCenter安装VM详解
- window.onload和$(document).ready()的加载执行顺序
- 【字典树】串集合查找
- BeanUtils.copyProperties方法遇到null值问题
- JAX-WS 学习实例一
- 苹果应用商店审核指南中文翻译
- IOS开发中nil与release
- android 通话记录次数
- 关于iPhone和iPad的图标的思考
- UNIX系统常用命令
- STL
- 退出telnet 命令