sessionscoped bean的会话清理后不会重置变量值
用例:sessionscoped bean的会话清理后不会重置变量值,session,jsf,scope,actionlistener,Session,Jsf,Scope,Actionlistener,用例: 1.点击“购买”按钮 2.篮子的内容增加 3.单击FF中的Shift-Ctrl-Del(清除cookie和缓存)并刷新 4.篮子的计数器保持不变 据我所知,会话作用域指定此计数器(步骤2)将仅在会话作用域中递增,并且在cookie之后,应重置缓存清理 问题是,它没有。通过提供持久cookie解决了问题,而您的URL中没有JSESSIONID属性?可能您的测试方法是完全错误的。您是否检查了请求和响应标题?(Firebug等)您调试了会话创建吗?(Eclipse、HttpSessionLis
1.点击“购买”按钮
2.篮子的内容增加
3.单击FF中的Shift-Ctrl-Del(清除cookie和缓存)并刷新
4.篮子的计数器保持不变
据我所知,会话作用域指定此计数器(步骤2)将仅在会话作用域中递增,并且在cookie之后,应重置缓存清理
问题是,它没有。通过提供持久cookie解决了问题,而您的URL中没有
JSESSIONID
属性?可能您的测试方法是完全错误的。您是否检查了请求和响应标题?(Firebug等)您调试了会话创建吗?(Eclipse、HttpSessionListener等)我没有注意到JSSessionID存在,但并不总是显示在URL上。问题不再是实际问题。
<h:form>
<h:commandButton value="Buy" styleClass="button-buy" actionListener="#{basketCount.incrementBasketCount}" immediate="true">
</h:commandButton>
</h:form>
<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>
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;
}
}