0

SessionScoped の Bean があるとします。( ビーン A と呼びます)

この Bean にアクセスするページをリクエストすると、この Bean が初期化され、それに応じてプロパティの一部が設定されます。

次に、この Bean とは関係のない他のページにアクセスします。( Bean A ) ただし、デバッガーでこの Bean の状態を確認したい。これどうやってするの?

私の質問が明確でない場合は、言い換えてみます。

@SessionScoped
@Named
public class User{
    private String name;
    //getters,setters
}

ここで、名前を user.name に設定する user.xhtml を想像してください。

ここで、ページ someotherpage.xhtml にいて、アプリケーションをデバッグしているとします。

この Bean は sessionscoped であるため、つまりまだスコープ内にあるため、デバッガーによって何らかの方法で到達できる必要があります。しかし、どのように?

4

2 に答える 2

1

私は IntelliJ に詳しくありませんが、実行中に変数値にアクセスできるコンソール デバッグ ツールがあることを知りました。必要な場所で実行を停止し、それを使用して Faces コンテキストにアクセスし、その名前を使用してマネージド Bean を取得します。

  FacesContext context = FacesContext.getCurrentInstance();
  context.getApplication().evaluateExpressionGet(context, "#{" + beanName + "}", Object.class);

CDI を使用する場合は、次のように実行できます。

@Inject
private Bean bean;

この SO answerから得ました。

よろしく。

于 2013-06-08T10:11:37.310 に答える