//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的形式
网友评论