1

JSF の ELflash を使用中に予期しない動作が発生しました。2 つのページ (page1 と page2) があり、各ページには独自の managedVean (Bean1 と Bean2) があります。page1 には、Bean1 からこのメソッドを呼び出すボタンがあります。

ELFlash.getFlash().put("xxx", "Test");
    return "page2?faces-redirect=true";

page2 では、フラッシュから値を回復するために、コンストラクターに次のステートメントがあります。

Map<String,Object> flash = ELFlash.getFlash();
    for(String s : flash.keySet()){
        if(s.equals("xxx")){
            myVariable=true;
        }
    }

そして、page1 のボタンをクリックすると、page2 にリダイレクトされ、変数 myVariable が true に設定されます。問題は、その後、ページを更新したり、別のタブでページを再度開いたりすると、myVariable を true に設定する if ステートメントに入力し続けることです。コンソールを見ると、Tomcat からの警告が表示されます。

03/05/2013 08:57:56 com.sun.faces.context.flash.ELFlash setCookie AVISO: JSF1095: フラッシュ用の送信 Cookie を設定しようとした時点で、応答は既にコミットされていました。フラッシュに保存された値は、次のリクエストでは使用できません。

私が理解していることでは、リクエストが終了した後、フラッシュはその状態をきれいにする必要があります。または、手動でクリーニングする必要がありますか?

4

0 に答える 0