BeanUtils包的使用

来源:互联网 发布:数字媒体技术软件 编辑:程序博客网 时间:2024/05/16 09:09

    

       文章来源:http://www.cnblogs.com/H_Razor/archive/2011/03/01/1967620.html


        BeanUtils工具包是由Apache公司所开发,主要是方便程序员对Bean类能够进行简便的操作。

       在使用BeanUtils工具包之前我们需要的Jar包有以下几种:

       (1)   BeanUtils相关包

       commons-beanutils-1.8.3.jar

       commons-beanutils-1.8.3-javadoc.jar

       commons-beanutils-1.8.3-javadoc.jar

      commons-beanutils-bean-collections-1.8.3.jar

      commons-beanutils-core-1.8.3.jar


      (2)   Logic4j相关包

     commons-logging.jar

       log4j.jar

      既然要对Bean对象进行操作,那么就需要一个Bean的测试类,我们以下面为所测试的Bean类

复制代码
 1 public class Student { 2  3   4  5        private String name; 6  7        private int age; 8  9        private Date birth;10 11  12 13  14 15        public String getName() {16 17               return name;18 19        }20 21        public void setName(String name) {22 23               this.name = name;24 25        }26 27        public int getAge() {28 29               return age;30 31        }32 33        public void setAge(int age) {34 35               this.age = age;36 37        }38 39        public Date getBirth() {40 41               return birth;42 43        }44 45        public void setBirth(Date birth) {46 47               this.birth = birth;48 49        }50 51  52 53 }
复制代码

一、先赋值Bean对象里的字段属性,然后再取值:

 

复制代码
 1 @Test 2  3        public void test01() throws Exception{ 4  5               //1.加载类 6   7               Class clss = Class.forName("com.L.introspector.Student"); 8  9               //2.创建Bean对象10  11               Student st = (Student) clss.newInstance();12 13               //3.通过BeanUtils给对象属性赋值14  15               BeanUtils.setProperty(st, "name", "L。");16 17               //4.输出对象属性值18  19               String str = BeanUtils.getProperty(st, "name");20 21               System.out.println(str);22 23 }
复制代码

      BeanUtils的setProperty(object,name,value)方法需要的参数分别是

      Object=加载类的对象

      Name=类属性的名称

      Value=所赋的值;

      BeanUtils的getProperty(object,name)方法的返回值是String类型,所以可以直接输出;


二、 使用BeanUtils自带的时间转化器转化时间

 

复制代码
 1 @Test 2  3        public void test03() throws Exception{ 4  5               //创建Student Bean对象 6   7               Student st = new Student(); 8  9               //使用自带转化器转化时间格式10  11               ConvertUtils.register(new DateLocaleConverter(), Date.class);12 13               //赋值给birth属性14  15               BeanUtils.setProperty(st, "birth", "1991-09-25");16 17               //输出birth属性的值18  19               System.out.println(st.getBirth());20 21        }
复制代码

三、 自定义日期格式转换器

 

复制代码
 1 @Test 2  3        public void test04()throws Exception{ 4  5               //创建Student对象 6  7               Student st = new Student(); 8  9               //使用CovertUtils注册创建一个日期格式转换器10 11               ConvertUtils.register(new Converter() {12 13  14 15                      @Override16 17                      public Object convert(Class type, Object value) {18 19                             //当value参数等于空时返回空20 21                             if(value==null){22 23                                    return null;24 25                             }26 27                             //自定义时间的格式为yyyy-MM-dd28 29                             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");30 31                             //创建日期类对象32 33                             Date dt = null;34 35  36 37                             try {38 39                                    //使用自定义日期的格式转化value参数为yyyy-MM-dd格式40 41                                    dt = sdf.parse((String)value);42 43                             } catch (ParseException e) {44 45                                    // TODO Auto-generated catch block46 47                                    e.printStackTrace();48 49                             }50 51                             //返回dt日期对象52 53                             return dt;54 55                      }56 57               }, Date.class);58 59               //给birth赋值60 61               BeanUtils.setProperty(st, "birth", "1991-09-25");62 63               //输出64 65               System.out.println(st.getBirth());66 67        }
复制代码

        ConvertUtils.register(new Converter()中,new Converter()就相当于重写了Converter类中方法:

       Public class MyConerter implements Converter{

              //并且在此处创建了匿名的对象

}
0 0