1. BeanUtils组件1.1 为什么要用这个组件?程序中,对javabean的操作非常频繁!需要简化对javabean的操作,这是可以使用beanUtils组件!
1.2 BeanUtilsApache组织(开源),开发的一套简单、便捷的组件,方便对javabean的操作! 使用步骤: 1. 下载组件,包括jar包、源码 2. 项目中引用jar包 commons-beanutils-1.8.3.jar commons-logging-1.1.3.jar
/** * BeanUtils组件 * 1. 引入jar文件 * 2. BeanUtils组件实现属性的拷贝,8中基本数据类型+String类型可以实现自动转换 * 日期类型,需要注册日期类型转换器! * 3.用法 * 1.往指定的javabean属性中设置值 * BeanUtils.copyProperty(order, "id", id); * 注册日期类型转换器: * ConvertUtils.register(newDateLocaleConverter(), Date.class); * * 2.对象间拷贝 * BeanUtils.copyProperties(new_order, order); * * 3.把map集合,拷贝到指定对象中 (map中的key,要与javabean中的属性名称一样) * BeanUtils.populate(order, map); * @author Administrator * */ @Test public void test1() throws Exception { int id = 100; String address = "广州天河"; String hobby[] = {"送餐","收钱"}; String date = "";//"1990-09-09"; // 创建对象 OrderMeal order = new OrderMeal(); // 注册日期类型转换器:方式1: 从string,到date类型的转换 ConvertUtils.register(new DateLocaleConverter(), Date.class); /* // 注册日期类型转换器:方式2: 自己实现一个日期转换功能 ConvertUtils.register(new Converter() { // 把传入的字符串(value),转换为日期 public Object convert(Class type, Object value) { // 先判断 if (value == null){ return null; } if ("".equals(value.toString().trim())){ return null; } if (!(value instanceof String)){ return null; } SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); try { return sdf.parse(value.toString()); } catch (ParseException e) { throw new RuntimeException(); } } }, Date.class); */ // 用BeanUtils组件,往javabean属性中设置值 /** 向order对象中的address属性设置值**/ BeanUtils.copyProperty(order, "address", address); BeanUtils.copyProperty(order, "id", id); BeanUtils.copyProperty(order, "hobby", hobby); BeanUtils.copyProperty(order, "order_date",date); /** 把源对象order拷贝到目标对象new_order中**/ OrderMeal new_order = new OrderMeal(); BeanUtils.copyProperties(new_order, order); /** 把map中数据,拷贝到javabean中**/ Map<String,Object> map = new HashMap<String,Object>(); map.put("id", id); map.put("address", address); // 创建javabean对象 OrderMeal order3 = new OrderMeal(); // 把map中数据,拷贝到javabean中 BeanUtils.populate(order3, map); } 1.3 请求数据填充javabean没有使用泛型:
没有使用范围,需要单独new对象 OrderMeal order = new OrderMeal(); 可以使用泛型再简化!
调用,更加简单: OrderMealorder = this.copyToBean(OrderMeal.class, request.getParameterMap()); |
|