zoukankan      html  css  js  c++  java
  • java beanUtils框架

    beanUtils是Apache觉得sun公司的内省不够爽,自己又开发了一套可以操作JavaBean的API

    所以beanUtils是第三方jar包,使用beanUtils要导包:

    在工程目录下新建一个文件夹“lib”,将下载下来的commons-beanutils包导入,beanutils中有个大jar包,还有collections和core两个jar包,后两个jar包加起来就组成了前者。我们把那个大点的包拿过来放lib下。 另外beanutils jar包在工作中需要一个log4j的日志记录器commons-logging.jar的支持,它也要被拿过来放lib下。

    然后把这两个jar包,把他们Add to Build Path中,加到开发环境中去。eclipse中鼠标右键就可以做到。

    代码:

    import org.apache.commons.beanutil.BeanUtils;//导包写这个

    ……

    Person p = new Person();

    BeanUtils.setProperty(p,"name","110");//直接将Person的对象p中的私有的name属性设置成110,如果这里的name属性是个整型,那么BeanUtils可以自动将字符串转换成整型。转化只支持八种基本类型。如果想自动转换别的类型,比如Date,需要注册BeanUtils转换器,让它按照我们的规则转换一下。

    注册日期转换器办法如下:

    ConvertUtils.register(new Converter(){

      public Object convert(Class type,Object value){

        if(value == null){

          return null;

        }

        if(!(value instanceof String)){

          throw new ConversionException("只支持String类型转换");

        }

        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 RuntimeExcepion(e);//异常链不能断,要把e弄出去让别人看

          //throw new ConversionException("转换失败");

        }

      }

    }

    ,Date.class);

    还可以这样:

    ConvertUtils.register(new DateLocaleConverter(),Date.class);//这个转换器转空会报错。。

    填充map到Bean:

    Map<String,String> map = new HashMap<String,String>();

    map.put("name","110");//属性不一致会填不进去,但是不会报错

    map.put("属性","值");

    Person bean = new Person();

    BeanUtils.populate(bean,map);

    更多内容请参阅第三方API

  • 相关阅读:
    计划给予心脏公式
    平原绫香 Hirahara Ayaka-Jupiter
    legend---十一、thinkphp事务中if($ans1&&$ans2){}else{}方式和try{}catch{}方式事务操作的区别在哪里
    chrome控制台常用技巧有哪些
    js中console强大之处体现在哪
    Pocket英语语法---五、形式主语是怎么回事
    智课雅思词汇---十二、vent是什么意思
    英语影视台词---八、the shawshank redemption
    Pocket英语语法---四、should的同义词是谁
    m_Orchestrate learning system---二十七、修改时如何快速找到作用位置
  • 原文地址:https://www.cnblogs.com/flying607/p/3444459.html
Copyright © 2011-2022 走看看