JSFbean——找出哪个bean触发了当前bean的初始化
假设我有一个带有JSFbean——找出哪个bean触发了当前bean的初始化,jsf,jsf-2,Jsf,Jsf 2,假设我有一个带有@PostConstruct方法的JSFbean。 我想知道哪个实体引用了当前bean并导致其初始化 @PostConstruct public void init() { logger.info(... Who initialized me? ...); } 此信息在JSF上下文中不可用。如果您使用的是Mojarra,则需要运行调试器并在ManagedBeanBuilder#bake()方法上设置断点 public void setParent(Object parent
@PostConstruct
方法的JSFbean。
我想知道哪个实体引用了当前bean并导致其初始化
@PostConstruct
public void init() {
logger.info(... Who initialized me? ...);
}
此信息在JSF上下文中不可用。如果您使用的是Mojarra,则需要运行调试器并在
ManagedBeanBuilder#bake()
方法上设置断点
public void setParent(Object parent) {
logger.info(parent + " has initialized me");
}
或者,如果您在运行时出于某种不明显的原因需要这些信息,那么您需要让调用方在引用bean的@ManagedProperty
的setter中设置自己
@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");
}
此信息在JSF上下文中不可用。如果您使用的是Mojarra,则需要运行调试器并在
ManagedBeanBuilder#bake()
方法上设置断点
public void setParent(Object parent) {
logger.info(parent + " has initialized me");
}
或者,如果您在运行时出于某种不明显的原因需要这些信息,那么您需要让调用方在引用bean的@ManagedProperty
的setter中设置自己
@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");
}