从具有Facelets的UIViewRoot获取组件树作为视图

时间:2009-06-26 14:56:44

标签: facelets

我有一个用JSP编码的应用程序,现在我们正在将这些页面迁移到Facelets。

我们的一个PhaseListener正在操作组件树,因为它需要找出树中的一些组件并提取它的一些值。但是对于Facelets,UIViewRoot不会返回任何孩子。

如何使用Facelets获得相同类型的功能?

提前致谢, 圣保罗

1 个答案:

答案 0 :(得分:3)

使用此行检索UIViewRoot应该有效:

FacesContext.getCurrentInstance().getViewRoot

我的猜测是你试图在JSF生命周期的第一阶段操纵组件树。 (link

第一阶段包括检索所请求页面的视图,即组件树。因此,您可以在此阶段完成后浏览组件树。

使用

phaseEvent.getPhaseId()

了解您正在从事哪个阶段。