代码之家  ›  专栏  ›  技术社区  ›  sergionni

sessionscoped bean的会话清理后,变量值未重置

  •  0
  • sergionni  · 技术社区  · 14 年前
    <h:form>
    <h:commandButton value="Buy" styleClass="button-buy" actionListener="#{basketCount.incrementBasketCount}" immediate="true">
    </h:commandButton>
    </h:form>
    

    jsf2部分:

     <li class="basket">    
      #{basketCount.basketCount}
     </li>
    

    面配置:

     <managed-bean>
      <managed-bean-name>basketCount</managed-bean-name>
      <managed-bean-class>main.BasketCount</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     </managed-bean>
    

    简单的动作监听bean:

    package main;
    
    import java.io.Serializable;
    
        public class BasketCount implements Serializable {
    
         private static final long serialVersionUID = -4576074045587545642L;
    
         int inBasketCount = 0;
    
         public void incrementBasketCount(javax.faces.event.ActionEvent event) {
          inBasketCount++;
         }
    
         public int getBasketCount() {
          return inBasketCount;
         }
    
        }
    

    用例:
    点击“购买”按钮
    篮子内容递增
    三。 在FF中单击Shift Ctrl Del(清除cookie和缓存)并刷新
    篮子的柜台保持不变

    据我所知,会话范围指定,这个计数器(步骤 )将仅在会话范围内递增,并且在Cookie之后,应重置缓存清理?

    问题是,它没有。

    1 回复  |  直到 7 年前
        1
  •  1
  •   sergionni    14 年前

    通过提供持久cookie解决