JSF Beans - узнайте, какой компонент вызвал инициализацию текущего компонента - PullRequest
0 голосов
/ 15 марта 2012

Предположим, у меня есть компонент JSF с методом @PostConstruct.Я хотел бы знать, какая сущность ссылалась на текущий компонент и вызвала его инициализацию.

@PostConstruct
public void init() {
  logger.info(... Who initialized me? ...);
}

1 Ответ

3 голосов
/ 15 марта 2012

Эта информация недоступна в контексте JSF.Если вы используете Mojarra, вам нужно запустить отладчик и установить точку останова для метода ManagedBeanBuilder#bake().

Или если вам нужна эта информация во время выполнения по какой-то неочевидной причине, тогда вам нужнопусть вызывающий установит себя в установщике @ManagedProperty, ссылающегося на bean-компонент.

@ManagedBean
@RequestScoped
public class Parent {

    @ManagedProperty("#{child}")
    private Child child;

    public void setChild(Child child) {
        this.child = child;
        this.child.setParent(this);
    }

    // ...
}

, тогда вы можете собрать эту информацию в методе setParent().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...