如果我有页面,假设包含两个不同的客户信息,我如何在同一页面中使用两个不同的托管bean(同一个java类)?
总结一下,在同一页面中,我想要在一个bean中保存一个客户的信息,在另一个bean中保存另一个客户的信息。
答案 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);
}
}