A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 庄星睿 中级黑马   /  2012-9-12 11:10  /  6182 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 庄星睿 于 2012-9-12 13:06 编辑
  1. @Test
  2. public void test3() throws Exception {
  3. String name = "aaa";
  4. String password = "123";
  5. String age = "23";
  6. String birthday = "1980-09-09";

  7. Person p = new Person();

  8. ConvertUtils.register(new Converter() {

  9. @Override
  10. public Object convert(Class type, Object value) {
  11. if(value == null){
  12. return null;
  13. }
  14. if(!(value instanceof String)){
  15. throw new ConversionException("类型不匹配String");
  16. }
  17. String str = (String)value;
  18. if(str.trim().equals("")){
  19. return null;
  20. }

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

  22. try {
  23. return df.parse(str);
  24. } catch (ParseException e) {
  25. throw new RuntimeException(e);
  26. }
  27. }

  28. },Date.class);

  29. BeanUtils.setProperty(p, "name",name);
  30. BeanUtils.setProperty(p, "password",password);
  31. BeanUtils.setProperty(p, "age",age);
  32. BeanUtils.setProperty(p, "birthday",birthday); //String类型不能转换Date类型
  33. System.out.println(p.getName());
  34. System.out.println(p.getPassword());
  35. System.out.println(p.getAge());
  36. System.out.println(p.getBirthday());
  37. }
复制代码
排查了很久也没找到错误,转换器是没问题的,加了转换器,还是报
org.apache.commons.beanutils.ConversionException: DateConverter does not support default String to 'Date' conversion.

找到错误了,导包导错了,eclipse自动导入的,java.util.Date包导成了java.sql.Date,对初学者建议查错时如果报错信息看不出来,就先从导入的包中查找,排错太浪费时间了

1 个回复

倒序浏览
很赞。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马