BeanUtils组件

引入jar包(需要引入依赖的日志jar包)

        Person p = new Person();
        p.setName("Daisy");
        p.setAge(12);
        //对象的copy
        Person newP = new Person();
        BeanUtils.copyProperties(newP,p);

        //对象属性的拷贝
        BeanUtils.copyProperty(p,"name","juaner");
        BeanUtils.setProperty(p,"age",10);//如果属性不存在,不会报错

        //map对象拷贝到对象中,servlet中请求数据封装到parameterMap中
        // 可以用来初始化bean
        Map<String,Object> propMap = new HashMap<String, Object>();
        propMap.put("name","tom");
        propMap.put("age",25);
        propMap.put("email","123@126.com");
        BeanUtils.populate(p,propMap);

自定义类型转换器:

        //模拟表单提交
        String name="jack";
        int age = 25;
        String birth = "1990-10-10";
        Person p = new Person();
        //注册日期类型转换器,自定义的方式
        ConvertUtils.register(new Converter() {
            @Override
            public Object convert(Class aClass, Object o) {
                if(aClass != Date.class)
                    return null;
                if(o == null||"".equals(o.toString().trim()) )
                    return null;
                try {
                    SimpleDateFormat format = 
                    new SimpleDateFormat("yyyy-mm-dd"); return format.parse(o.toString()); }catch (ParseException e){ throw new RuntimeException(e); } } }, Date.class); BeanUtils.setProperty(p,"name",name); BeanUtils.setProperty(p,"age",age); BeanUtils.setProperty(p,"birth",birth);

使用BeanUtils组件提供的转换器:

        //模拟表单提交
        String name="jack";
        int age = 25;
        String birth = "1990-10-25";
        //使用组件提供的转换器工具类,不支持空格
        ConvertUtils.register(new DateLocaleConverter(),Date.class);
        Person p = new Person();
        BeanUtils.setProperty(p,"name",name);
        BeanUtils.setProperty(p,"age",age);
        BeanUtils.setProperty(p,"birth",birth);

 

转载于:https://www.cnblogs.com/juaner767/p/5575501.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值