第一步:
/**
* @Title: BeanUtil.java
* @copyright
* @Package net.atrunning.util
* @Description: 用于解决Apache的BeanUtils 拷贝日期对象转换问题
* @author Mr.chen
* @date 2016-1-4 下午03:53:54
*/
public class BeanUtil extends BeanUtils{
private BeanUtils() {}
static {
//注册sql.date的转换器,允许BeanUtils.copyProperties时sql.Date类型的值允许为空
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.sql.Date.class);
//注册util.date的转换器,允许BeanUtils.copyProperties时util.Date类型的值允许为空
ConvertUtils.register(new org.apache.commons.beanutils.converters.SqlDateConverter(null), java.util.Date.class);
}
public static void copyProperties(Object target, Object source) throws InvocationTargetException,IllegalAccessException {
org.apache.commons.beanutils.BeanUtils.copyProperties(target, source);
}
}
第二部:
/**
* @Title: TestAction.java
* @copyright
* @Package net.atrunning.util
* @Description: 测试重写的注册方法是否有效
* @author Mr.chen
* @date 2016-1-4 下午04:22:38
*/
public class TestAction {
public static void main(String[] args) {
BeanUtilEx.copyProperties(target, result);
}
}