我有状态会话Bean其中保存的名单:如何在两个不同的CDI bean中使用相同的EJB,并将从一个bean设置的值复制到另一个?
@Stateful
public class CartDAO{
private List<ShoppingCart> tempCart;
public void add(ShoppingCart shoppingCart){
tempCart.add(shoppingCart);
}
public List<ShoppingCart> getCart(){
return tempCart;
}
@PostConstruct
public void init(){
tempCart = new ArrayList<>();
}
}
控制器1添加到购物车:
@Named
@SessionScoped
public class Controller1 implements Serializable {
@EJB
CartDAO cartDao;
public String addToShoppingCart() {
cartDao.add(shoppingCart);
}
}
现在,我要问你,我可以得到额外的项目到从另一个购物车列表?
@Named
@SessionScoped
public class Controller2 implements Serializable {
@EJB
CartDAO cartDao;
public String getShoppingCart() {
System.out.println(cartDao.getCart());//returns null
}
}
显然上面的代码返回null。
如何从其他控制器检索列表。任何帮助都感激不尽。
你真的*表示null,还是你的意思是列表是空的,因为Controller1和Controller2每个都有一个唯一的CartDAO实例? –