在同一jsf页面中使用多个托管bean

在同一jsf页面中使用多个托管bean,jsf,managed-bean,Jsf,Managed Bean,如果我有一个页面,比如说包含两个不同的客户信息,那么如何在同一个页面中使用两个不同的托管bean(这是同一个java类) 作为总结,在同一页面中,我希望在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息 我想在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息 再来一粒豆子 用于相同目的的另一个bean是复制,如果您认为它合乎逻辑的话。每个页面都有其页面的状态(生命)。当您尝试{bean.customer}时,它将返回相同的值。因为它的对象是一样的

如果我有一个页面,比如说包含两个不同的客户信息,那么如何在同一个页面中使用两个不同的托管bean(这是同一个java类)

作为总结,在同一页面中,我希望在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息

我想在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息 再来一粒豆子

用于相同目的的另一个bean是复制,如果您认为它合乎逻辑的话。每个页面都有其页面的状态(生命)。当您尝试
{bean.customer}
时,它将返回相同的值。因为它的对象是一样的

我建议改进您的代码,为视图使用另一个类,为您的应用程序分层。像

//Base class
    public class Customer {
    private String id;
    /*
     *Other fields
     */

    //getter Setters
    }

@ManagedBean
@RequestScoped
public class PageBackingBean implements Serializable{
    List<Customer> customer = new ArrayList<>(); //can Hold more than one customer

    public PageBackingBean(){
           Customer cus1 = DataBase.loadByCustomerId(id);
           customer.add(cus1);

           Customer cus2 = DataBase.loadByCustomerId(id);
           customer.add(cus2);
    }

}
//基类
公共类客户{
私有字符串id;
/*
*其他领域
*/
//吸气剂二传手
}
@ManagedBean
@请求范围
公共类PageBackingBean实现了可序列化{
List customer=new ArrayList();//可以容纳多个客户
公共PageBackingBean(){
Customer cus1=DataBase.loadByCustomerId(id);
customer.add(cus1);
Customer cus2=DataBase.loadByCustomerId(id);
customer.add(cus2);
}
}

你为什么要问一个反问句?如果我理解得很好的话,我不理解“我使用两个不同的托管bean(这是同一个java类)”,只要使用#{someBean.someproperty}和#{anotherBean.someproperty}我的意思是当它需要某个bean而另一个bean是同一个java类时:#{someBean.someproperty}和#{另一个bean.someproperty}谢谢你的回答,因为你说最好将它们分开。我只是不想创建两个非常相似的类。在它拯救生命之前,页面的备份有一个作用域,bean也有相应的生命。页面的所有备份可以存储正好一条记录,例如在hibernate Pojo类==数据库的1条记录中。当你遍历它时,就会失去一条记录。