请教各位一个beanUtil中的copyProperties()的问题 copyProperties()好象不行,你要那样做的话估计只有手工set了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以自己封装一下BeanUtils,通过ConvertUtils来注册数据类型的转换类BeanUtilEx.java-----------------------------------------------package com.maifei.util.beanutil;import org.apache.commons.beanutils.ConvertUtils;import org.apache.commons.beanutils.BeanUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import java.util.HashMap;import java.util.Map;/** * <p>Title: </p> * <p>Description: citysir's library</p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: toone</p> * * @author citysir * @version 1.0 */public final class BeanUtilEx extends BeanUtils{ private static Map cache = new HashMap(); private static Log logger = LogFactory.getFactory().getInstance(BeanUtilEx.class); private BeanUtilEx() { } //update by zhuzf at 2004-9-29 static { //注册sql.date的转换器,即允许BeanUtils.copyProperties时的源目标的sql类型的值允许为空 ConvertUtils.register(new SqlDateConverter(), java.sql.Date.class); //ConvertUtils.register(new SqlTimestampConverter(), java.sql.Timestamp.class); //ConvertUtils.register(new UtilDateConverter(), java.util.Date.class); } public static void copyProperties(Object source, Object target) { //update bu zhuzf at 2004-9-29 //支持对日期copy try { org.apache.commons.beanutils.BeanUtils.copyProperties(target, source); } catch (Exception e) { logger.error("拷贝对象出错!", e); } }}SqlDateConverter.java-----------------------------------------------package com.maifei.util.beanutil;import org.apache.commons.beanutils.ConversionException;import org.apache.commons.beanutils.Converter;/** * java.sql.date 转换器,供ConvertUtils注册使用 * User: zhuzf * Date: 2004-9-29 * Time: 9:57:22 */public class SqlDateConverter implements Converter { public Object convert(Class type, Object value) { //如果value为空的话,则返回空,不抛出异常 if (value == null || value.toString().length() < 1) { return null; } else { //如果是java.sql.Date if (value instanceof java.sql.Date) { return (value); } try { return (java.sql.Date.valueOf(value.toString())); } catch (Exception e) { try { java.util.Date aDate = null; //4位数年份 例如:1980 if (value.toString().length() == 4) { aDate = DateUtil.parse(value.toString(), "yyyy"); return new java.sql.Date(aDate.getTime()); } else { aDate = DateUtil.parse(value.toString(), "yyyy-MM-dd hh:mm:ss"); return new java.sql.Date(aDate.getTime()); } } catch (Exception ex) { throw new ConversionException(ex); } } } }} 搞定了,直接把beanUtils的源码拿出来用,加了其中一句:if(value==null) continue;呵呵,管用了! 【求助】JSP实现pcap文件的读取 spring为什么没注入啊???在线等答案啊,求救啊 为什么 frame 源文件找不到但确可以正常使用. javascript 关于HibernateSession 这个错误代码说的是什么? 什么情况下调用doGet()和doPost()? 第一次用微软的jdbc驱动就没成功 大家来帮忙哦 请帮忙表示这个cookie! include指令与include动作到底有什么区别 高分请教关于jspsmartupload下载问题 response.getOutputStream().write();问题
BeanUtilEx.java
-----------------------------------------------
package com.maifei.util.beanutil;import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import java.util.HashMap;
import java.util.Map;/**
* <p>Title: </p>
* <p>Description: citysir's library</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: toone</p>
*
* @author citysir
* @version 1.0
*/
public final class BeanUtilEx extends BeanUtils{ private static Map cache = new HashMap();
private static Log logger = LogFactory.getFactory().getInstance(BeanUtilEx.class); private BeanUtilEx() {
} //update by zhuzf at 2004-9-29
static {
//注册sql.date的转换器,即允许BeanUtils.copyProperties时的源目标的sql类型的值允许为空
ConvertUtils.register(new SqlDateConverter(), java.sql.Date.class);
//ConvertUtils.register(new SqlTimestampConverter(), java.sql.Timestamp.class);
//ConvertUtils.register(new UtilDateConverter(), java.util.Date.class);
} public static void copyProperties(Object source, Object target) {
//update bu zhuzf at 2004-9-29
//支持对日期copy
try {
org.apache.commons.beanutils.BeanUtils.copyProperties(target, source);
} catch (Exception e) {
logger.error("拷贝对象出错!", e); }
}}SqlDateConverter.java
-----------------------------------------------
package com.maifei.util.beanutil;import org.apache.commons.beanutils.ConversionException;
import org.apache.commons.beanutils.Converter;/**
* java.sql.date 转换器,供ConvertUtils注册使用
* User: zhuzf
* Date: 2004-9-29
* Time: 9:57:22
*/
public class SqlDateConverter implements Converter {
public Object convert(Class type, Object value) {
//如果value为空的话,则返回空,不抛出异常
if (value == null || value.toString().length() < 1) {
return null;
} else {
//如果是java.sql.Date
if (value instanceof java.sql.Date) {
return (value);
} try {
return (java.sql.Date.valueOf(value.toString()));
} catch (Exception e) {
try {
java.util.Date aDate = null;
//4位数年份 例如:1980
if (value.toString().length() == 4) {
aDate = DateUtil.parse(value.toString(), "yyyy");
return new java.sql.Date(aDate.getTime());
} else {
aDate = DateUtil.parse(value.toString(), "yyyy-MM-dd hh:mm:ss");
return new java.sql.Date(aDate.getTime());
}
} catch (Exception ex) {
throw new ConversionException(ex);
} }
} }
}
if(value==null) continue;
呵呵,管用了!