SSH框架之Struts(4)——Struts查漏补缺BeanUtils的简单使用

本文介绍了BeanUtils工具的主要功能,包括克隆JavaBean实例、在JavaBean间复制属性及动态设置和获取属性值,并通过示例代码展示了其在实际项目中的应用。

 一)、背景

 上篇博客我们提到了一个重要的操作javaBean工具——BeanUtils。这篇博客我们简单来了解一下BeanUtils的相关知识。BeanUtils作为一个第三方的服务,提供了对javaBean的各种操作服务。

 其主要的功能总结如下:

  1、通过BeanUtils.cloneBean()方法克隆一个JavaBean的实例
  2、通过BeanUtils.copyProperties()在JaveBean之间实现属性的复制
  3、通过BeanUtils.setProperty()为一个JavaBean的实例设置属性

  4、通过BeanUtils.getProperty从JavaBean的实例中读取相关的信息

 二)具体实践:


	public class User {
		private String userNameString;
		private String userPasswordString;
		
		public String getUserNameString() {
			return userNameString;
		}
		public void setUserNameString(String userNameString) {
			this.userNameString = userNameString;
		}
		public String getUserPasswordString() {
			return userPasswordString;
		}
		public void setUserPasswordString(String userPasswordString) {
			this.userPasswordString = userPasswordString;
		}
	}


    1)克隆实体

	User nUser=new User();
	User suser=(User)BeanUtils.cloneBean(nUser);


  有兴趣的可以研究一下suser和nuser是不是同一个实例?也就是说BeanUtils克隆出来的是不是指向的同一个实例?


    2)属性复制

   具有相同属性的JavaBean,通过BeanUtils,可以实现属性的复制。常见的情况就是Struts1中,实体对象获取ActionForm中的值。


   传统的方法:


	// 获取 ActionForm 表单数据
	UserActionForm uForm = (UserActionForm) form;
	User user = new User();
	// 逐一赋值
	user.setUsername(uForm.getUsername);
	user.setPassword(uForm.getPassword);
	user.setAge(uForm.getAge);


    属性少,逐一赋值无可厚非。但是如果属性多点的话,那么多的属性一条一条赋值起来可是一件麻烦的事情.

  

   使用BeanUtils后


	// 采用BeanUtils后	
	UserActionForm uForm = (UserActionForm) form;
	User user = new User();
	// 属性copy赋值
	BeanUtils.copyProperties(user, uForm);

    

      一句简单的BeanUtils.copyProperties(user, uForm);就将UForm所有的属性值赋值给了user。

    3)、Get和SetProperty

      通过get和set动态的给实体属性实现赋值。


	//给对象的某个属性赋值
	BeanUtils.setProperty(nUser, "UserNameString","leilei");
	//获取某个对象的属性值
	BeanUtils.getProperty(nUser,"UserNameString");
	其中BeanUtils会使用ConvertUtils类把字符串转为Bean属性的真正类型,方便从HttpServletRequest等对象中提取bean,或者把bean输出到页面。
	而PropertyUtils就会原色的保留Bean原来的类型。


三)、小结

  BeanUtils作为一个第三方的提供操作JavaBean方法的服务,在struts1中,使用BeanUtils实现了实现属性值的转换和赋值。 (BeanUtils.populate(bean, properties));  而这里主要扩展下BeanUtils的其他用途和优点。

评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值