1

ビュースコープに 1 つのマネージド Bean があり、このスコープを使用しているフォームをリセットしたいと考えています。この投稿の Baluc によると、Reset JSF Backing Bean(View or Session Scope)
私は自分のコードで同じことをしました:

    public String reset(){
         FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean");
        return "SamePage?faces-redirect=true"; 

    }

しかし、それは機能していません。解決策を教えてください。

4

2 に答える 2

4

これを試して

public void reset(){

     FacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean");

}

またはこれ

public String reset(){

     return "SamePage"; 

}
于 2012-07-25T20:40:15.673 に答える
0

nullでもvoidでもないものを返すことで、への呼び出しは不要になるという考え方ですFacesContext.getCurrentInstance().getViewRoot().getViewMap().remove("myBean")。以下は(最終的に)機能するはずです:

public String reset() {
    return "";
}

ビュースコープのBeanがレンダリング応答フェーズの前または後に破棄されたかどうかを覚えていないため、「最終的に」と言います。BalusCが?faces-redirect=true戻り値に追加することを提案したのはそのためだと思います。

于 2012-06-05T18:49:57.640 に答える