2010-11-21 10 views
0
<h:form> 
<h:commandButton value="Buy" styleClass="button-buy" actionListener="#{basketCount.incrementBasketCount}" immediate="true"> 
</h:commandButton> 
</h:form> 

JSF2部:変数値がsessionscoped Beanのセッション・クリーンアップの後にリセットされない

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

    } 

使用例:
ボタンバスケットの
2.コンテンツを "購入" に1.クリックがインクリメントされ
3.クリックFFでShiftキーを押しながらCtrlキーを押しながらデル(クリーンクッキーとキャッシュ)とリフレッシュ
4.私が理解したようバスケットのカウンタは、このカウンタは(ステップ)のみセッションスコープにインクリメントされ、クッキーの後、キャッシュのクリーンアップがresettedされるべきであると?、セッションスコープを指定し、

を同じまま

問題はありません。

+1

あなたのURLには「JSESSIONID」属性はありませんか? – BalusC

+0

はい、私は持っていません – sergionni

+0

おそらくあなたのテスト方法は間違っていました。リクエストヘッダーと応答ヘッダーを確認しましたか? (Firebugなど)セッション作成をデバッグしましたか? (Eclipse、HttpSessionListenerなど) – BalusC

答えて

1

永続的なクッキーを提供することによって解決されました