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