我有一个用JSP编码的应用程序,现在我们正在将这些页面迁移到Facelets。
我们的一个PhaseListener正在操作组件树,因为它需要找出树中的一些组件并提取它的一些值。但是对于Facelets,UIViewRoot不会返回任何孩子。
如何使用Facelets获得相同类型的功能?
提前致谢, 圣保罗
答案 0 :(得分:3)
使用此行检索UIViewRoot应该有效:
FacesContext.getCurrentInstance().getViewRoot
我的猜测是你试图在JSF生命周期的第一阶段操纵组件树。 (link)
第一阶段包括检索所请求页面的视图,即组件树。因此,您可以在此阶段完成后浏览组件树。
使用
phaseEvent.getPhaseId()
了解您正在从事哪个阶段。