同一会话作用域bean上的多个选项卡相互干扰

时间:2012-03-17 16:53:16

标签: jsf

我有JSF 2.0电子商务应用程序。我正在使用2个会话范围的bean:ProductBean和CartBean。 ProductBean保存表示当前产品用户正在查看的产品实体。 CartBean包含产品列表。 CartBean有方法addProduct(Product p)。我在使用多个标签时添加到购物车时遇到问题。这是场景:

  
      
  1. 用户访问产品页面:/ product?id = 111
  2.   
  3. 用户打开另一个产品的新浏览器标签:/ product?id = 222
  4.   
  5. 用户返回第一个标签并点击“添加到购物车” - 第二个产品(ID = 222)已添加到购物车。
  6.   

以下是添加到购物车commandButton操作的代码:

#{cartBean.addProduct(productBean.product)}

我很清楚发生了什么事。如何在多个标签上进行此操作?

1 个答案:

答案 0 :(得分:1)

制作ProductBean request - 作用域。如果您的bean是会话范围的,那么它们对所有请求都是全局的。同样,如果它们是应用程序范围的,那么它们对所有会话都是全局的。