美文网首页
BeanUtil组件

BeanUtil组件

作者: 陈洲 | 来源:发表于2017-02-26 23:13 被阅读0次
    //BeanUtil组件*****************************************************************
        
        /*
            用处:对JavaBean对象的操作工具包
            要引入BeanUtil核心包和日志包logging
        */
        
        ChenZhou cz = new ChenZhou(); //属性id,name...
    
        //赋值
        BeanUtils.copyProperty(cz,"id",313980);
        BeanUtils.setProperty(cz,"id",313980);
    
        //对象拷贝
        ChenZhou cz2 = new ChenZhou();
        BeanUtils.copyProperty(cz2,cz);//参数1为被赋值对象
    
        //使用MAP辅助赋值
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("id",313980);
        map.put("name","cz");
        BeanUtils.populate(cz,map);
        
        //常用Map
        BeanUtils.populate(cz,request.getParameterMap());
    
    
        //转换类型,将表单传来的类型转换成自己要的
        /*
            表单:<form><input type="text" name="birthday"></form>
            JavaBean对象中成员:Data birthday;
            为了使用:BeanUtils.populate(cz,request.getParameterMap());
            类型不匹配
        */
    
        //解决方法,向类型转换器注册转换方法
        ConvertUtils.register(Convert c,Class clazz);   //clazz要转换的类型,Convert是接口
            
            //方法一,自己实现接口:
            ConvertUtils.register(new Convert(){
                public Object convert(Class type, Object value) { //value要转换的值,type是JavaBean中要转换的类型,函数返回值作为转换结果
                    if (type != Date.class) {
                        return null;
                    }
                    if (value == null || "".equals(value.toString().trim())) {
                        return null;
                    }
                    try {
                        // 字符串转换为日期
                            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                            return sdf.parse(value.toString());
                        } catch (ParseException e) {
                            throw new RuntimeException(e);
                        }
                    }
    
    
            },  
            Data.class);
    
            //方法二,使用已经有的Convert实现类
            ConvertUtils.register(new DateLocaleConverter(),Date.class); //以yyyy-mm-dd的形式
    
    
    

    相关文章

      网友评论

          本文标题:BeanUtil组件

          本文链接:https://www.haomeiwen.com/subject/xomawttx.html