2009-06-26 4 views
2

JSP로 코딩 된 응용 프로그램이 있으며 지금은 페이지를 Facelets로 마이그레이션하는 중입니다.Facelets를 뷰로 사용하여 UIViewRoot에서 구성 요소 트리 가져 오기

PhaseListeners 중 하나는 트리에서 일부 구성 요소를 찾아 값의 일부를 추출해야하기 때문에 구성 요소 트리를 조작하고 있습니다. 그러나 Facelets에서는 UIViewRoot가 자식을 반환하지 않습니다.

Facelets에서 동일한 유형의 기능을 어떻게 얻을 수 있습니까? 이 라인 UIViewRoot을 가져 사전에

감사합니다, 파울로

답변

3

작동합니다 :

FacesContext.getCurrentInstance().getViewRoot 

내 생각 엔 당신이 JSF 라이프 사이클의 첫 번째 단계에서 컴포넌트 트리를 조작하려고하는 것입니다. (link)

첫 번째 단계는 요청 된 페이지에 대한보기, 즉 구성 요소 트리를 검색하는 단계로 구성됩니다. 따라서이 단계가 완료된 후에 구성 요소 트리를 탐색 할 수 있습니다.

사용

phaseEvent.getPhaseId() 

당신이 작업중인 단계 볼.

+0

청취자가 JSP 페이지에 대한 문제없이 근무 RESTORE_VIEW 단계 동안 호출되는했다. Facelets에서는 그다지 중요하지 않았지만, 귀하의 의견에 감사 드리며, RENDER_REPONSE라는 또 다른 단계를 시도했으며 이전과 같이 작동합니다. –