Значение переменной не сбрасывается после очистки сеанса для сессионного объекта EJB - PullRequest
0 голосов
/ 21 ноября 2010
<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>

face-config:

 <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>

простой компонент для прослушивания действий:

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;
     }

    }

сценарий использования 1. нажмите на кнопку «Купить» 2. содержимое корзины увеличивается 3. нажмите Shift-Ctrl-Del (очистить cookie и кэш) в FF и Обновить 4. счетчик корзины остался прежним

Как я понимаю, область действия сеанса указывает, что этот счетчик (шаг 2 ) будет увеличиваться только в области действия сеанса, а после файлов cookie очистка кэша должна быть сброшена?

Проблема в том, что это не так.

1 Ответ

1 голос
/ 11 января 2011

Решено путем предоставления постоянных куки

...