`
shihuan830619
  • 浏览: 576182 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

commons-beanutils一些应用

    博客分类:
  • J2EE
 
阅读更多
BeanDto.java类:
import java.io.Serializable;

public class BeanDto implements Serializable {
	private String name;

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
}


MyBean.java类:
import java.io.Serializable;

public class MyBean implements Serializable {

	private Person person;

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}
}


Person.java类:
import java.io.Serializable;

public class Person implements Serializable {

	private Address address;

	public Address getAddress() {
		return address;
	}

	public void setAddress(Address address) {
		this.address = address;
	}
}


Address.java类:
import java.io.Serializable;

public class Address implements Serializable {

	private String city;

	public String getCity() {
		return city;
	}

	public void setCity(String city) {
		this.city = city;
	}
}


TestBeanutils.java类:
import java.lang.reflect.InvocationTargetException;
import java.sql.Date;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.commons.beanutils.BasicDynaClass;
import org.apache.commons.beanutils.BeanPropertyValueChangeClosure;
import org.apache.commons.beanutils.BeanPropertyValueEqualsPredicate;
import org.apache.commons.beanutils.BeanToPropertyValueTransformer;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.DynaBean;
import org.apache.commons.beanutils.LazyDynaBean;
import org.apache.commons.beanutils.LazyDynaList;
import org.apache.commons.beanutils.LazyDynaMap;
import org.apache.commons.beanutils.WrapDynaBean;
import org.apache.commons.collections.CollectionUtils;

import com.commonsbeanutils.dto.Address;
import com.commonsbeanutils.dto.BeanDto;
import com.commonsbeanutils.dto.MyBean;
import com.commonsbeanutils.dto.Person;

public class TestBeanutils {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		//将一个bean包装成一个dynabean, 便于使用
		BeanDto dto = new BeanDto();
		dto.setName("shihuan");
		DynaBean wrapper = new WrapDynaBean(dto);
		String firstName = (String) wrapper.get("name");
		System.out.println(firstName);
		
		Map map = new HashMap();
		map.put("name", "大家好!");
		//将Map中的数据,填入到bean中..强大吧..
		try {
			BeanUtils.populate(dto, map);
			System.out.println(dto.getName());
		} catch (IllegalAccessException e1) {
			e1.printStackTrace();
		} catch (InvocationTargetException e1) {
			e1.printStackTrace();
		} 
		
		ConvertUtils.convert("2010-4-30", Date.class);  //转化为时间类
		ConvertUtils.convert("20.02", Double.class);  //转化为double
		System.out.println(ConvertUtils.convert("2011-8-28", Date.class));
		System.out.println(ConvertUtils.convert("28.09", Double.class));
		
		//将整个集合的bean的name属性设置为批量修改集合中的bean的name属性
		List dtoCollection = new ArrayList();
		dtoCollection.add(dto);
		BeanPropertyValueChangeClosure closure = new BeanPropertyValueChangeClosure("name", "批量修改集合中的bean的name属性");
	    CollectionUtils.forAllDo(dtoCollection, closure);
	    System.out.println(dto.getName());

	    //过滤整个集合,查找name的值是prepare的所有beans
	    List dtoCollectionFilter = new ArrayList();
	    dto.setName("prepare");
	    dtoCollectionFilter.add(dto);
	    BeanPropertyValueEqualsPredicate predicate = new BeanPropertyValueEqualsPredicate("name", "prepare");
	    CollectionUtils.filter(dtoCollectionFilter, predicate);
	    System.out.println(dtoCollectionFilter.size());
	    
	    //获取每个bean的person属性中的地址属性中的城市信息,输出到集合中
	    MyBean mybean1 = new MyBean();
	    Person person1 = new Person();
	    mybean1.setPerson(person1);
	    Address address1 = new Address();
	    person1.setAddress(address1);
	    mybean1.getPerson().getAddress().setCity("锦州");
	    MyBean mybean2 = new MyBean();
	    Person person2 = new Person();
	    mybean2.setPerson(person2);
	    Address address2 = new Address();
	    person2.setAddress(address2);
	    mybean2.getPerson().getAddress().setCity("沈阳");
	    List myCollection = new ArrayList();
	    myCollection.add(mybean1);
	    myCollection.add(mybean2);
	    BeanToPropertyValueTransformer transformer = new BeanToPropertyValueTransformer("person.address.city");
	    Collection resultCity = CollectionUtils.collect(myCollection, transformer);
	    for (Iterator iterCity = resultCity.iterator(); iterCity.hasNext();) {
			String citys = (String) iterCity.next();
			System.out.println(citys);
		}
	    
		
		//dynabean是一种动态的Bean,他的使用非常像Map的操作
		DynaBean car = new LazyDynaBean();
        car.set("carNo", 1);
        car.set("owner", "张三");         
        System.out.println(car.get("carNo") + " -- " + car.get("owner"));
        
        DynaBean carMap = new LazyDynaMap();
        carMap.set("carNo", 2);
        carMap.set("owner", "历史");         
        System.out.println(carMap.get("carNo") + " -- " + carMap.get("owner"));
        
        List carList = new LazyDynaList();
        carList.add(3);
        carList.add("王五");     
        System.out.println(carList.get(0).toString() + " -- " + carList.get(1).toString());
        
        BasicDynaClass bdClass = new BasicDynaClass();
        try {
			DynaBean dynaBean = bdClass.newInstance();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			e.printStackTrace();
		}
		
		
	}

}
分享到:
评论

相关推荐

    commons-fileupload-1.0-beta-1.jar、commons-beanutils-1.8.3.jar

    Commons是Apache开放源代码组织中的一个Java子项目,该项目主要涉及一些开发中常用的模块,例如文件上传、命令行处理、数据库连接池、XML配置文件处理等。这些项目集合了来自世界各地软件工程师的心血,其性能、稳定...

    commons-beanutils-1.9.3

    在整个J2EE的编程过程中,我们经常会从各种配置文件中读取相应的数据,需要明白的一点是从配置文件中读取到的数据都是String,但是很显然我们的应用程序中不仅仅有String一种数据类型,比如:基本数据类型(int、...

    commons-beanutils-1.9.4-bin.zip

    BeanUTils的jar包,1.9版本具有最新特性。适合于JavaWeb开发中的应用,大家有需要的可以下载。

    commons-beanutils-1.9.2-bin.zip

    Sun公司的内省API过于繁琐,所以Apache组织结合很多实际开发中的应用场景开发了一套简单、易用的API操作Bean的属性——BeanUtils,在Beanutil中可以直接进行类型的自动转换。

    json应用jar包,json应用的架包:commons-beanutils-1.7.0.jar

    json应用jar包,json应用的架包:commons-beanutils-1.7.0.jar json应用的架包:commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-lang-2.4.jar commons-logging-1.1.jar ezmorph-1.0.4.jar json-...

    commons-beanutils-1.8.3 API.chm

    BeanUtils也是Apache Commons家族中的一员,顾名思义,它是用来对Java Bean来进行处理的。一般情况下,在写一个Bean时,我们都要写上getXX和setXX方法,这样在读取和写入对象属性值时很方便,但有些场合下,比如动态...

    apache-commons源码及jar文件

    Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 JavaBean 映射至 XML 文档,以及相反映射的服务. Chain Chain 提供实现组织复杂的处理流程的“责任链模式”. CLI CLI 提供针对命令行...

    json应用jar包

    json格式串转为json对象,xml文件转为json串对象,或者json串对象转为xml文件。...commons-beanutils-1.7.0.jar commons-lang-2.3.jar commons-logging-1.1.1.jar commons-collections-3.2.1.jar ezmorph-1.0.3.jar

    比较全面的:Jakarta-commons jar包(附: chm参考手册 & 资源简介)

    commons-beanutils 提供对 Java 反射和自省API的包装 commons-betwixt 这个组件提供一个XML自省(introspection)机制用来把Java Bean映射到XML文档 commons-chain 提供实现组织复杂的处理流程的“责任链模式” ...

    精通Java EE整合应用案例 源代码19章 chat

    commons-beanutils-1.7.1-20061106.jar commons-collections-3.2.jar commons-configuration-1.2.jar commons-dbcp-1.2.1.jar commons-logging-1.0.4.jar commons-pool-1.3.jar dom4j-1.6.1.jar ehcache-1.2.3.jar ...

    Jakarta commons docs API CHM 格式

    commons-beanutils 提供对 Java 反射和自省API的包装 commons-betwixt 这个组件提供一个XML自省(introspection)机制用来把Java Bean映射到XML文档 commons-chain 提供实现组织复杂的处理流程的“责任链模式” ...

    Java开发常用jar包

    1.commons-beanutils.jar:提供对Java反射和自省API的包装,主要提供了对于 JavaBean进行各种操作。提供了对于JavaBean进行各种操作,克隆对象,属性等等. 2.commons-digester.jar:方便地将XML文档所定义的元素转化为...

    Jason应用的Jar包

    Jason应用的Jar包 commons-beanutils-1.7.0.jar commons-collections-3.2.jar commons-lang-2.4.jar commons-logging-1.1.jar ezmorph-1.0.4.jar json-lib-2.2.2-jdk15.jar JSON简介.doc

    json应用全部jar包

    json应用全部jar包,commons-beanutils-1.7.0.jar,commons-collections-3.2.jar,commons-lang-2.4.jar,commons-logging-1.1.jar,ezmorph-1.0.4.jar,json-lib-2.2.2-jdk15.jar

    zkRou#note#聊聊各种json包1

    json-lib最开始应用的json解析工具,json-lib 需要依赖很多第三方包,包括commons-beanutils.jar,commons-colle

    javaWeb应用开发所需基础jar包.zip

    压缩包含有commons-beanutils-1.9.4、commons-collections-3.2.2、commons-lang-2.6、commons-logging-1.2、ezmorph-1.0.6、json-lib-2.4-jdk15、mysql-connector-java-8.0.20,配套使用即可实现基本的后端接口开发

    jsf应用开发必用jar包

    commons-beanutils.jar,commons-collections.jar, commons-digester.jar, jsf-api.jar, jsf-impl.jar, jstl.jar, standard.jar

    运用MVC模式及JavaWeb三层框架的学生管理系统

    commons-beanutils-1.9.3.jar,commons-logging-1.2.jar,logback-classic-1.1.7.jar,logback-core-1.1.7.jar,mysql-connector-java-5.0.8-bin.jar,slf4j-api-1.7.21.jar (4)建包,如下图:用了个非大型项目...

Global site tag (gtag.js) - Google Analytics