0

(sample.xhtml)XHTML ページにいくつかのデータを保持するマネージド Bean (DemoManagedBean.java) があります。

sample.xhtml にはリダイレクト リンクがあり、同じページ (sample.xhtml) の新しいタブが開きますが、異なるデータが読み込まれます。

問題 - DemoManagedBean.java のインスタンスが 1 つしかないため、それ以上処理できません。1 つのタブでの変更は、他のすべてのタブに影響します。

特定のタブのデータを保持するすべてのタブに複数のインスタンスを持たせる方法はありますか?

ありがとう、

ディネシュ

4

1 に答える 1

0

適切な Beanスコープを設定することでそれを制御します。特定のケースでは、ビューごとの状態が必要かどうかに応じて、Bean をリクエスト スコープまたはビュー スコープに配置する必要があります。

標準の JSF Bean 管理 API を使用すると、次のようになります (XML は必要ありません!)。

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean
@RequestScoped
public class DemoManagedBean {
    // ...
}

@XxxScopedスコープ アノテーションが指定されていない場合、デフォルトは@NoneScopeです。ただし、説明はセッションまたはアプリケーションのスコープと一致します。おそらく、実際に何をしているのかをよく理解していないときに、 @SessionScopedorアノテーションを明示的に設定した可能性があります。@ApplicationScopedまたは、何らかの理由で Spring を使用して Bean を管理している可能性があり@Controllerます。明示的なスコープが指定されていない Spring は、デフォルトでアプリケーション スコープになります。

以下も参照してください。

于 2013-06-21T11:38:12.640 に答える