请问下关于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.RuntimeException:
org.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);
不用你那么复杂。
------解决方案--------------------你日期格式没传错吧