如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm,例如Teacher和TeacherForm。我们一般会在Action里从ActionForm构造一个PO对象,传统的方式是使用类似下面的语句对属性逐个赋值:
//得到TeacherForm
TeacherForm teacherForm=(TeacherForm)form;
//构造Teacher对象
Teacher teacher=new Teacher();
//赋值
teacher.setName(teacherForm.getName());
teacher.setAge(teacherForm.getAge());
teacher.setGender(teacherForm.getGender());
teacher.setMajor(teacherForm.getMajor());
teacher.setDepartment(teacherForm.getDepartment());
//持久化Teacher对象到数据库
HibernateDAO=;
HibernateDAO.save(teacher);
而使用BeanUtils后,代码就大大改观了,如下所示:
//得到TeacherForm
TeacherForm teacherForm=(TeacherForm)form;
//构造Teacher对象
Teacher teacher=new Teacher();
//赋值
BeanUtils.copyProperties(teacher,teacherForm);
//持久化Teacher对象到数据库
HibernateDAO=;
HibernateDAO.save(teacher);
如果Teacher和TeacherForm间存在名称不相同的属性,则BeanUtils不对这些属性进行处理,需要程序员手动处理。例如Teacher包含modifyDate(该属性记录最后修改日期,不需要用户在界面中输入)属性而TeacherForm无此属性,那么在上面代码的copyProperties()后还要加上一句:
teacher.setModifyDate(new Date());
分享到:
相关推荐
如果需要在数据库操作后复制对象,可以在Mapper接口的方法中,或者在Service层中实现对象复制。 总的来说,Java中的对象复制是程序设计中的重要概念,尤其在数据处理和业务逻辑中。理解并熟练掌握浅拷贝和深拷贝的...
例如,通过`BeanUtils.copyProperties()`方法,可以方便地将一个对象的属性值复制到另一个对象,极大地提高了代码的可读性和维护性。 2. **类型转换**:BeanUtils库能够自动处理基本数据类型的转换,如将字符串转换...
在"java学习笔记——javaweb之BeanUtils、EL、JSTL"这篇博客中,作者可能详细讲解了如何在Java Web开发中利用BeanUtils进行数据绑定,以及与EL(Expression Language)和JSTL(JSP Standard Tag Library)的集成。...
// 复制属性 BeanUtils.copyProperties(destUser, srcUser); System.out.println(destUser.getName()); // 输出:John System.out.println(destUser.getAge()); // 输出:30 } } ``` 3. **源码解析** ...
2. **复制属性**:`BeanUtils.copyProperties()`方法可以将一个对象的所有属性值复制到另一个对象,这在对象克隆或数据迁移场景中非常有用。 3. **异常处理**:BeanUtils库会捕获并包装在访问属性过程中抛出的异常...
这个库简化了在对象之间复制属性、处理集合以及调用JavaBean方法的过程。在这个"commons-beanutils-1.9.4.jar.zip"压缩包中,包含的核心文件是"commons-beanutils-1.9.4.jar",这是Apache Commons BeanUtils库的...
在Java编程中,对象复制是一项常见的任务,特别是在处理模型(Model)和视图对象(VO)时。模型对象通常用于封装业务数据,而视图对象则用于展示这些数据。值复制,即对象属性值的复制,是保持数据一致性和简化代码...
3. **复制属性**:`copyProperties()`方法可以将一个对象的属性值复制到另一个对象,这对于数据模型之间的转换非常有用。它会遍历源对象的所有可写属性,并尝试将其值赋给目标对象的同名属性。 4. **空值处理**:...
总结来说,Apache Commons BeanUtils 1.8.0是一个强大的Java Bean操作库,它简化了属性的读写操作,提供了对象复制、属性批量设置等高级功能,并且源码开放,有助于开发者提升技能。在Java开发中,尤其是在需要处理...
3. **复制属性**:`copyProperties()`方法可以将一个对象的所有属性复制到另一个对象,这在对象克隆或数据模型映射时非常方便。 4. **反射支持**:BeanUtils利用Java的反射API,动态地处理JavaBean对象,无需预先...
《BeanUtils-jar包:JavaBean操作的利器》 在Java开发中,BeanUtils-jar包扮演着重要的角色,它是Apache Commons项目...在实际项目中,合理利用BeanUtils-jar包,可以有效地减少重复代码,使程序设计更加简洁和灵活。
在Java开发中,Apache Commons BeanUtils是一个非常实用的工具库,它提供了许多便捷的方法来操作JavaBeans,使得在处理对象属性时变得更加简单。本篇文章将深入探讨如何使用BeanUtils库,特别是通过它将Map对象转换...
- **数据模型转换**:在业务逻辑层,我们可以利用BeanUtils的复制功能,将DAO层返回的数据对象转换为VO(Value Object)对象,用于视图展示。 - **表单验证**:在进行表单验证时,可以先用BeanUtils填充表单数据,...
这个库的核心功能在于简化了JavaBean对象的属性设置、获取以及复制等操作,使得开发者能够更加方便地进行数据绑定和对象之间的属性拷贝。在本文中,我们将深入探讨`commons-beanutils-1.6.0`版本的源码,揭示其背后...
例如,我们有一个源对象`sourceBean`和目标对象`targetBean`,它们具有相同的属性结构,我们可以使用`BeanUtils.copyProperties()`方法来快速完成两个对象属性的复制: ```java try { BeanUtils.copyProperties...
2. **反射操作**:BeanUtils库利用Java的反射API,允许开发者动态地获取和设置Bean的属性,即使在运行时不确定属性名称。 3. **类型转换**:BeanUtils包含了自动类型转换的功能,这意味着即使源属性和目标属性的...
3. **对象拷贝**:在对象复制或克隆场景下,BeanUtils的`copyProperties()`方法可以避免手动编写重复的代码。 4. **JSON序列化与反序列化**:在与JSON交互时,BeanUtils可配合其他库(如Jackson或Gson)进行对象与...
- **属性复制**:BeanUtils提供`copyProperties()`方法,能将一个Bean的所有属性值复制到另一个Bean,这在对象克隆或数据模型转换时非常有用。 - **类型转换**:BeanUtils具备自动类型转换能力,当设置属性值时,...
总的来说,Apache Commons BeanUtils 1.8.3版是Java开发中处理JavaBean对象的一种高效工具,提供了方便的属性操作和类型转换功能,源代码的开放使得开发者可以更深入地理解和利用这个库。在使用时,可以结合API文档...
BeanUtils是Apache Commons项目中的一个核心工具包,其主要功能是提供了一系列便捷的方法来操作JavaBean对象,大大简化了在Java编程中对JavaBean属性的设置...在日常开发中,合理利用BeanUtils,可以显著提升开发效率。