美文网首页
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