当前位置: 首页 > 知识库问答 >
问题:

如何将属性从一个bean复制到不同类中的另一个bean?[重复]

和和煦
2023-03-14

我有两个具有相同属性名称的java类。如何将所有属性复制到另一个充满数据的bean。我不想使用传统的表单复制属性,因为我有很多属性。

提前感谢。

1类

@ManagedBean
@SessionScoped
public class UserManagedBean implements Serializable {

    private static final long serialVersionUID = 1L;
    private String userSessionId;
    private String userId;
    private String name;
    private String adress;
    ......................

2类

public class UserBean {

    private String userSessionId;
    private String userId;
    private String name;
   ....................

共有3个答案

南宫才艺
2023-03-14

如果您使用Apache的库BeanUtils,您可以很容易地做到这一点:

http://commons.apache.org/proper/commons-beanutils/

特别是,看看copyProperties(Object,Object)

http://commons.apache.org/proper/commons-beanutils/apidocs/org/apache/commons/beanutils/BeanUtils.html#copyProperties(java.lang.Object、java.lang.Sobject

对于属性名称相同的所有情况,将属性值从源bean复制到目标bean。

薛弘厚
2023-03-14

看看Dozer框架——它是一个对象到对象的映射框架。这个想法是:

  • 通常它会按惯例绘制地图。
  • 您可以使用映射文件覆盖此约定。

。。因此,映射文件尽可能紧凑。它在很多情况下都很有用,比如将一个用例指定服务有效负载映射到可重用的核心模型对象上。

在提供SpringSource培训课程时,我们经常指出这个框架。

编辑:

这些天尝试Mapstruct。

蒯胜泫
2023-03-14

使用BeanUtils

import org.apache.commons.beanutils.BeanUtils;

UserBean newObject = new UserBean(); 
BeanUtils.copyProperties(newObject, oldObject);
 类似资料:
  • 问题内容: 我有两个具有相同属性名称的java类。如何将所有属性复制到另一个装有数据的bean中。我不想使用传统形式来复制属性,因为我有很多属性。 提前致谢。 1班 2班 问题答案: 用途:

  • 问题内容: 我有一个简单的Java POJO,可以将属性复制到同一POJO类的另一个实例。 我知道我可以使用BeanUtils.copyProperties()做到这一点,但我想避免使用第三方库。 那么,如何简单,正确,安全地做到这一点呢? 顺便说一句,我正在使用Java 6。 问题答案: 我想如果您查看BeanUtils的源代码,它将向您展示如何在不实际使用BeanUtils的情况下执行此操作。

  • 问题内容: 我在不同的程序包中有几个Pojo,每个POJO包含同一程序包中另一个Pojo的集合。我需要将所有具有相同名称的项目从Package B Pojos复制到Package A中的对象。 极端: 我想递归地将所有项目从类复制到存在且共享相同名称的类。 更新: 伙计们,我知道这是一个愚蠢的问题,但是我需要维护此代码,现在编写代码时,他们必须调用50个getter和setter或使用50个参数调

  • 在spring initialize之后,我希望将第二个bean的属性值合并到第一个bean中。请告知spring是否提供了动态注入值的类。

  • 问题内容: 是否可以通过读取另一个bean的属性来设置一个bean的属性?例如,假设我有: 我希望Spring实例化这两个类,并调用A的setList方法,并传入调用B的getList方法的结果。Spring配置可能类似于: las,这种伪造的XML不起作用。 为什么不将B注入A?因为我不想引入额外的依赖关系。A仅依赖列表,而不依赖B。 问题答案: 如果你使用的是spring 3.0,还可以使用新

  • 我有一个场景,在呈现JSF页面之前,我必须调用另一个bean和注册的bean属性,因为JSF页面引用bean属性来呈现响应。 处理请求-调用后端方法以获取详细信息-如果(type==XYZ),则调用beantwo.gettypexyz()并按照为beantwo.gettypexyz()定义的导航规则重定向-否则(type==RST),则调用beanthree.gettyperst()并按照为bea