当前位置:  首页  >  前端开发  >  设计思想

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

一)、背景上篇博客我们提到了一个重要的操作javaBean工具——BeanUtils。这篇博客我们简单来了解一下BeanUtils的相关知识。BeanUtils作为一个第三方的服务,提供了对javaBean的各种操作服务。其主要的功能总结如下:1、通过BeanUtils.cloneBean()方法克隆一个Jav
 一)、背景  上篇博客我们提到了一个重要的操作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的其他用途和优点。
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | 凯发国际娱乐 | 凯发国际娱乐下载 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有