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);
希望大家帮忙解决一下,这个转换器存在什么问题呢。万分感谢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

解决方案 »

  1.   

    你是不是要先deregister那个default的dateconverter啊,试试
      

  2.   

    应该不会把。
    我这里只是Date向字符串转换的转换器。
    BeanUtils应该可以注册很多的转换器的。我到其他环境测试下看看。
      

  3.   

    DateConverter dateConverter = new DateConverter(null);
    dateConverter.setPatterns(new String[]{"yyyy-MM-dd","yyyy/MM/dd"});
    ConvertUtils.register(dateConverter, Date.class);
    不用你那么复杂。
      

  4.   

    老师说SUN自己给的那个转换器存在问题。
      

  5.   


    不是的,我真是....。
    是Date ,在自动import的时候,变成了sql.Date;
      

  6.   

    老师说SUN自己给的那个转换器存在问题。

    这个DateConverter是BeanUtils自己的,哪里是SUN的?还有,麻烦问一下你们老师这个DateConverter有什么bug,我倒是在很多地方看到有说DateConverter在解析空字符串的时候要报错,那是因为他们在创建DateConverter上面没有设置null这个defaultValue.