Apache Commons BeanUtils使用笔记

Commons-BeanUtils中包含大量和JavaBean操做有关的工具方法,提供自动类型转换,使用BeanUtils可轻松利用Java反射机制来完成所需功能。java

使用BeanUtils须要导入commons-beanutils-x.x.x.jar和commons-logging-x.x.jarapache

Apache Commons BeanUtils 1.9.3ide

Apache Commons Logging 1.2工具

测试实例测试

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);
	}

}
相关文章
相关标签/搜索