Получение дерева компонентов из UIViewRoot с Facelets в качестве представления - PullRequest
2 голосов
/ 26 июня 2009

У меня есть приложение, которое было закодировано с JSP, и сейчас мы находимся в процессе перехода на страницы в Facelets.

Один из наших PhaseListener манипулирует деревом компонентов, потому что ему нужно найти некоторые компоненты в дереве и извлечь некоторые из его значений. Но с Facelets UIViewRoot не возвращает никаких детей.

Как я могу получить такую ​​же функциональность с Facelets?

Заранее спасибо, Paulo

1 Ответ

3 голосов
/ 26 июня 2009

Получение UIViewRoot с этой строкой должно работать:

FacesContext.getCurrentInstance().getViewRoot

Я предполагаю, что вы пытаетесь манипулировать деревом компонентов на первом этапе жизненного цикла JSF. ( ссылка )

Первый этап заключается в получении представления, то есть дерева компонентов, для запрашиваемой страницы. Поэтому вы можете просто исследовать дерево компонентов после завершения этой фазы.

Использование

phaseEvent.getPhaseId()

чтобы увидеть, на каком этапе вы работаете.

...