Commons-BeanUtils中包含大量和JavaBean操做有关的工具方法,提供自动类型转换,使用BeanUtils可轻松利用Java反射机制来完成所需功能。java
使用BeanUtils须要导入commons-beanutils-x.x.x.jar和commons-logging-x.x.jarapache
Apache Commons BeanUtils 1.9.3ide
测试实例测试
package cn.iborder.test; import java.lang.reflect.InvocationTargetException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import java.util.Map; import org.apache.commons.beanutils.BeanUtils; import org.apache.commons.beanutils.ConvertUtils; import org.apache.commons.beanutils.Converter; import org.junit.Test; import cn.iborder.entity.Admin; import cn.iborder.entity.Admin1; public class Test2 { @Test public void test1() { Admin admin = new Admin(); try { //实现对象属性的拷贝 BeanUtils.copyProperty(admin, "userName", "baidu7"); BeanUtils.setProperty(admin, "pwd", "baidu7"); System.out.println(admin.getUserName()+"\t"+admin.getPwd()); //对象拷贝 Admin admin2 = new Admin(); BeanUtils.copyProperties(admin2, admin); System.out.println(admin2.getUserName()+"\t"+admin2.getPwd()); //map数据拷贝到对象 //map中的key应该是javabean的属性名称一致 Admin admin3 = new Admin(); Map<String, Object> adminMap = new HashMap<String, Object>(); adminMap.put("userName", "baidu8"); adminMap.put("pwd", "baidu8"); BeanUtils.populate(admin3, adminMap); System.out.println(admin3.getUserName()+"\t"+admin3.getPwd()); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //日期类型转换器 @Test public void test2() { //模拟表单数据 String name = "jack"; String age = "20"; String birth = "1990-09-22"; //封装表单数据到对象 Admin1 admin = new Admin(); // 注册日期类型转换器 //ConvertUtils.register(new DateLocaleConverter(), Date.class);// 组件提供的转换器工具类 //自定义 ConvertUtils.register(new Converter() { // 转换的内部实现方法,须要重写 @Override public Object convert(Class type, Object value) { 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); } } },Date.class); // 把表单提交的数据,封装到对象中 BeanUtils.copyProperty(admin, "userName", name); BeanUtils.copyProperty(admin, "age", age); BeanUtils.copyProperty(admin, "birth", birth); //------ 测试------ System.out.println(admin); } }