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

时间:2015-02-11 11:32:46

标签: jsf managed-bean

如果我有页面,假设包含两个不同的客户信息,我如何在同一页面中使用两个不同的托管bean(同一个java类)?

总结一下,在同一页面中,我想要在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息。

1 个答案:

答案 0 :(得分:0)

  

我希望在一个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);
    }

}