0
@PostConstruct
メソッドを持つJSF Beanがあるとします。 現在のBeanを参照しているエンティティを知りたいと思います。JSF Beans - 現在のBeanの初期化をトリガーしたBeanを確認します。
@PostConstruct
public void init() {
logger.info(... Who initialized me? ...);
}
@PostConstruct
メソッドを持つJSF Beanがあるとします。 現在のBeanを参照しているエンティティを知りたいと思います。JSF Beans - 現在のBeanの初期化をトリガーしたBeanを確認します。
@PostConstruct
public void init() {
logger.info(... Who initialized me? ...);
}
この情報は、JSFのコンテキストでは使用できません。 Mojarraを使用している場合は、デバッガを実行して、ManagedBeanBuilder#bake()
メソッドにブレークポイントを設定する必要があります。
また、何らかの理由で実行時にこの情報が必要な場合は、呼び出し元がbeanを参照している@ManagedProperty
のセッターに自分自身を設定させる必要があります。
@ManagedBean
@RequestScoped
public class Parent {
@ManagedProperty("#{child}")
private Child child;
public void setChild(Child child) {
this.child = child;
this.child.setParent(this);
}
// ...
}
この情報は、setParent()
メソッドで収集できます。
public void setParent(Object parent) {
logger.info(parent + " has initialized me");
}