首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

org.apache.commons.beanutils.ConversionException,BeanUtils.copyProperties(target

2014-01-26 
org.apache.commons.beanutils.ConversionException,BeanUtils.copyProperties(target, o) 抛出异常:Action

org.apache.commons.beanutils.ConversionException,BeanUtils.copyProperties(target, o) 抛出异常:

ActionForm:
  public class BbsActionForm extends ActionForm {
  public String dt =null;
  public void setDt(String dt) {
  this.dt = dt;
  }
 
  public String getDt() {
  return this.dt;
  }
  }
 
  Bbs.hbm.xml:
  <property column="dt" length="20" name="dt" type="java.sql.Date"/>
 
  Bbs.java:
  public class Bbs extends BaseObject {
  public java.sql.Date dt = null;
  public void setDt(java.sql.Date dt) {
  this.dt = dt;
  }
  public java.sql.Date getDt() {
  return this.dt;
  }
  }
 
  Action:
  把ActionForm转换为Bean:
  Object bbsForm = (Object) form;
  Bbs bbs =(Bbs)Normal.convertObjectForFormToBean(bbsForm);
  bbsManager.Update(bbs);
 
  其中Normal类:
  public static Object convertObjectForFormToBean(Object o) {
  Object target = null;
  if (o == null) {
  target = null;
  } else {
  try {
  String name = o.getClass().getName(); int p = name.lastIndexOf("ActionForm"); name = name.substring(0, p);
  Class obj = Class.forName(name);
  target = obj.newInstance();   BeanUtils.copyProperties(target, o);
  } catch (Exception e) {
      System.out.println("Error:"+e.toString());
    }
  }
  return target;
  }
 
  现在就是从string->java.sql.Date转换不过来,但反过来是完全可以的
 
 

------解决方法--------------------------------------------------------
BeanUtils对date的支持不是很好,好象只支持java.util.Date
 
  很久 以前用过一次,虽然会报错,但是值已经都传递过去了
 
  java.lang.IllegalArgumentException:
  Cannot invoke com.test.spring.Bbs.setDt - argument type mismatch
  应该跟BeanUtils无关吧
------解决方法--------------------------------------------------------
BeanUtils好像不支持复杂类型的
------解决方法--------------------------------------------------------
public void setDt(java.sql.Date dt)
 
  public void setDt(String dt)
 
  这2个不一样啊,当然会出错了
------解决方法--------------------------------------------------------
要是字段不多的话还不如不要用BeanUtils之类
------解决方法--------------------------------------------------------
我记得我用 Digester 解析 XML 时 有个 注册转换器的 方法, 不知道 你这里有没有这种可能性?         

热点排行