日期:2014-05-18  浏览次数:20697 次

请问下关于beanutils的问题。
	static public void copyBean(Object src,Object desk)
{

ConvertUtils.register(new Converter(){

@Override
public Object convert(Class type, Object value)
{
if(value == null)
{
return null;
}
String str = (String)value;

if(str.trim().equals(""))
{
return null;
}

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

try
{
return df.parse(str);
}
catch(ParseException e)
{
throw new RuntimeException(e);
}
}

},Date.class);

try
{
BeanUtils.copyProperties(desk, src);
}
catch(Exception e)
{
throw new RuntimeException(e);
}
}


这是我写的代码,里面定义了一个转换器。但是系统貌似提示这个转换器不可以使用。
java.lang.RuntimeExceptionorg.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.
cn.dzr.utils.WebUtils.copyBean(WebUtils.java:106)

在web页面。
错误指向:throw new RuntimeException(e);

Eclipse页面下:
at cn.dzr.utils.WebUtils.copyBean(WebUtils.java:102)

有一个指向102行的错误。

BeanUtils.copyProperties(desk, src);
希望大家帮忙解决一下,这个转换器存在什么问题呢。万分感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

------解决方案--------------------
你是不是要先deregister那个default的dateconverter啊,试试
------解决方案--------------------
DateConverter dateConverter = new DateConverter(null);
dateConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy/MM/dd"});
ConvertUtils.register(dateConverter, Date.class);
不用你那么复杂。
------解决方案--------------------
你日期格式没传错吧