`
shihuan830619
  • 浏览: 582874 次
  • 性别: 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-beanutils (1.7.0 -1.9.2)6个

    - **Web开发**:在Servlet或JSP应用中,`commons-beanutils`常用于模型视图的绑定,将请求参数映射到Bean对象。 - **数据转换**:在数据交换或序列化过程中,BeanUtils的属性拷贝功能能帮助快速地转换数据结构。 ...

    commons-beanutils-1.9.1.jar<---&gt;commons-logging-1.1.3.jar

    Commons BeanUtils库是Apache软件基金会开发的一个Java工具包,它为Java编程提供了一种便捷的方式来操作JavaBeans。这个库的核心是它的BeanUtils类,它提供了一系列的方法,使得开发者可以通过属性名称来读取和设置...

    commons-beanutils.jar commons-collections-3.1.jar commons-pool-1.2.jar

    这里提到的三个JAR文件——`commons-beanutils.jar`、`commons-collections-3.1.jar`和`commons-pool-1.2.jar`,都是Apache Commons项目的一部分,分别涉及Bean操作、集合操作和对象池化。 **1. `commons-beanutils...

    commons-beanutils-1.9.4

    在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目中集成和应用。 Apache Commons BeanUtils库的主要目标是简化JavaBean对象的属性访问。它通过提供一系列静态...

    commons-beanutils-1.8.3.jar.zip

    在实际应用中,`commons-beanutils-1.8.3.jar`常与其他Apache Commons库(如Collections、Lang等)结合使用,以实现更强大的功能。例如,结合Commons Collections,可以方便地处理复杂的数据结构;结合Commons Lang...

    commons-beanutils-1.8.0-src

    BeanUtils还提供了一些与i18n相关的功能,例如`formatMessage()`,它可以根据当前的Locale格式化消息,这在处理多语言应用时十分方便。 6. **自定义转换器(Custom Converters)** 用户可以通过实现Converter接口...

    commons-beanutils-1.8.0.jar、commons-logging-1.1.1.jar

    Apache Commons BeanUtils是Java开发中的一个实用工具库,它提供了对JavaBeans操作的强大支持。这个库简化了在Java应用程序中处理Java对象的属性的工作。在本篇中,我们将深入探讨`commons-beanutils-1.8.0.jar`和`...

    commons-beanutils、commons-collections、commons-collections等常用jar 包下载

    1. **Apache Commons BeanUtils** - `commons-beanutils-1.9.3.jar` Apache Commons BeanUtils库是用于处理JavaBeans的工具类库。它提供了一种简单的方式来操纵JavaBean属性,无需直接调用getter和setter方法。这个...

    commons-beanutils-1.9.4.zip

    Apache Commons BeanUtils是Java开发中的一个实用工具库,它提供了对JavaBeans属性操作的强大支持,使得开发者能够方便地进行对象属性的读写操作。而Apache Commons Logging则是一个轻量级的日志框架,它允许开发者...

    commons-beanutils-1.9.3jar包source包及相关jar包

    Apache Commons BeanUtils是Java开发中的...同时,配合其他Apache Commons库,如Collections和Logging,可以构建更强大、更灵活的Java应用程序。了解并熟练使用这些工具,对于提升代码质量、减少维护成本具有重要意义。

    commons-beanutils-1.9.3.jar

    Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于简化对JavaBean的操作。这个`commons-beanutils-1.9.3.jar`文件是该库的一个版本,它提供了丰富的API来帮助开发者更方便地处理JavaBean对象。在这个...

    commons-beanutils.jar.zip

    《JSF中的commons-beanutils.jar:深入了解与应用》 在Java Server Faces(JSF)框架的开发过程中,经常会遇到一些常用的库文件,其中之一便是`commons-beanutils.jar`。这个小巧却强大的库,是Apache Commons项目...

    commons-beanutils-1.9.4.jar.zip

    9. **与其他Apache Commons库的集成**:BeanUtils可以很好地与Apache Commons其他库(如Collections、Lang等)结合使用,增强应用的功能。 10. **文档与社区**:Apache Commons项目提供了详细的API文档和用户指南,...

    commons.jar +commons-beanutils.jar

    标题中的"commons.jar +commons-beanutils.jar"指的是Apache Commons项目中的两个核心组件:commons.jar和commons-beanutils.jar。Apache Commons是Java编程语言中的一系列小型实用程序库,为开发人员提供了各种常见...

    commons-beanutils-1.8.1.jar.zip

    《Apache Commons BeanUtils 1.8.1:深入解析与应用》 Apache Commons BeanUtils是Java开发中的一个著名工具库,它为处理JavaBeans提供了极大的便利。本篇将详细探讨`commons-beanutils-1.8.1.jar.zip`这个压缩包中...

    commons-beanutils.jar

    《深入理解Apache Commons BeanUtils与Java Web开发》 在Java Web开发中,Apache Commons BeanUtils是一个不可或缺的工具库,尤其在使用Struts2(S2SH)框架进行局部刷新和Ajax交互时,它扮演着至关重要的角色。...

    commons-beanutils-1.8.3-bin.rar

    Commons BeanUtils是Apache软件基金会开发的一个Java...配合其他Apache Commons库,可以构建出功能强大的Java应用程序。在使用时,开发者应确保已正确引入相关依赖,并了解其功能和使用限制,以充分利用其提供的便利。

    commons-beanutils-1.8.0-src.zip

    5. **国际化支持**:BeanUtils库与Apache Commons Locale和Validator组件配合使用,可以实现对不同语言和地区的支持,使应用程序更易国际化。 6. **源代码分析**:在学习"commons-beanutils-1.8.0-src.zip"中的源...

Global site tag (gtag.js) - Google Analytics