这个问题在这里已有答案:
我有两个具有相同属性名称的java类。如何将所有属性复制到另一个填充了data的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;
....................
使用BeanUtils
:
import org.apache.commons.beanutils.BeanUtils;
UserBean newObject = new UserBean();
BeanUtils.copyProperties(newObject, oldObject);
如果您使用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.Object)
对于属性名称相同的所有情况,将属性值从原始bean复制到目标bean。
查看Dozer Framework - 它是对象映射框架的对象。这个想法是:
。 。因此映射文件尽可能紧凑。它对许多情况很有用,例如将用例指定服务有效负载映射到可重用的核心模型对象。
在提供SpringSource培训课程时,我们经常指出这个框架。
编辑:
这几天尝试MapStruct。
使用java反射来设置和获取属性值。有spring bean属性util,它可以访问属性值。我会向你推荐java反射。