学会使用BeanUtils 来操作bean属性

1.导入BeanUtils 的jar包

BeanUtils是第三方jar包,不是sun公司开发的jar包中的jar文件。但是在开发中我们是常使用beanutils来操作javabean。

我们要使用BeanUtils来操作bean属性,那么就必须将其导入到开发环境中。下面先介绍如何将我们要使用的jar导入:

第一步:我们需要到http://archive.apache.org/dist/commons/beanutils/binaries/  这个网站上下载:

commons-beanutils-1.8.3-bin.tar.gz

第二步:在百度中搜索:commons-logging.jar 并下载

第三步:在MyEclipse中,在你已经建立的project工程名上右键鼠标,新建一个folder,取名:Lib(可以任意命名)。

第四步:将commons-beanutils-1.8.3-bin.tar.gz解压并将其中的commons-beanutils-1.8.3.jar复制到剪贴板,然后在Lib文件夹上粘贴。同样将:commons-logging.jar 

在Lib文件夹上粘贴。

第五步:右键Lib文件夹,buildPath即可,就可以看到在工程的下方已经加入到这个jar文件


2.使用BeanUtils来操作bean属性

示例代码:

public class Car {
private String name="aaa";
private int size=12;
private int people=4;
private Date date;

public Car(){
	
}

public Car(String name, int size, int people) {
	super();
	this.name = name;
	this.size = size;
	this.people = people;
}

public String getA(){
	return null;
}


public String getName() {
	return name;
}
public void setName(String name) {
	this.name = name;
}
public int getSize() {
	return size;
}
public void setSize(int size) {
	this.size = size;
}
public int getPeople() {
	return people;
}
public void setPeople(int people) {
	this.people = people;
}

public Date getDate() {
	return date;
}

public void setDate(Date date) {
	this.date = date;
}


}

a.改变某一字段的值

Car c=new Car();
BeanUtils.setProperty(c,"name","xcc");
System.out.println(c.getName());

b.BeanUtils 支持将String类型自动转化成基本类型参数。复杂类型不支持

		Car c=new Car();
		String sname="abcd";
		String speople="12";
		String ssize="123";
		
		BeanUtils.setProperty(c,"name",sname);
		BeanUtils.setProperty(c,"weight",speople);//BeanUtils这个类帮助我们将String类型的参数转化为int型 
		BeanUtils.setProperty(c,"size",ssize);
		System.out.println(c.getName());
		System.out.println(c.getPeople());
		System.out.println(c.getSize());
BeanUtills使得我们的操作bean属性更加的方便,如当我们在处理用户提交过来的表单时,因为提交的数据都是String类型


c.如果我们要将一个String类型的值 转化成复杂类型的值,那么就要这么做:

下面我们以将一个String类型的值转成我们想要的Date类型的值

		Car c=new Car();
		String d="1990-07-02";
		ConvertUtils.register(new Converter(){
			public Object convert(Class type, Object value) {
				if(value==null)return null;
				if(!(value instanceof String))
					throw new ConversionException("不能转换为String类型");
				String str=(String)value;
				//trim()忽略前导空白和尾部空白
				if(str.trim().equals(""))
					return null;
				SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
				try {
					return sdf.parse(str);
				} catch (ParseException e) {
					throw new RuntimeException(e);
				}
			}
			
		},Car.class);//这是我们自己定义并实现的一个Date类型转换器
		//ConvertUtils.register(new DateLocaleConverter(), Car.class);//new DateLocalCXonverter()是API文档中已经被实现了的时间转换器
	
		BeanUtils.setProperty(c, "date", d);
		System.out.println(c.getDate());

d.将一个map集合中的字段值一次性导入到bean属性中

		Car c=new Car();
		Map map=new HashMap();
		map.put("name", "java");//每个字段对应的值
		map.put("people", "12");
		map.put("size", "12");
		
		BeanUtils.getCacheFast(map);
		System.out.println(c.getName());
		System.out.println(c.getPeople());
		System.out.println(c.getSize());



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值