JSF:如何检查我是否处于“恢复视图”阶段?

2024-02-08

当我的托管 bean 中的特定方法被调用时,我想知道我是否处于 JSF 生命周期的恢复视图阶段。我怎样才能做到这一点?


如果您已经在使用 JSF 2.0,那么您可以使用以下命令进行检查FacesContext#getCurrentPhaseId() http://java.sun.com/javaee/6/docs/api/javax/faces/context/FacesContext.html#getCurrentPhaseId%28%29:

if (FacesContext.getCurrentInstance().getCurrentPhaseId() == PhaseId.RESTORE_VIEW) {
    // Restore view called.
}

但如果您仍在使用 JSF 1.x,那么您最好的方法是使用PhaseListener http://java.sun.com/javaee/5/docs/api/javax/faces/event/PhaseListener.html它监听PhaseId.RESTORE_VIEW,在请求范围内设置一个标志/切换/令牌beforePhase()并在期间删除它afterPhase()。然后让 bean 的 getter 方法检查它是否存在于请求范围中。

也就是说,您到底需要它做什么?我从来没有需要这样的功能需求。不是 bean 的构造函数还是@PostConstruct带注释的方法可能是执行此类初始化操作的更好地方?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSF:如何检查我是否处于“恢复视图”阶段? 的相关文章

随机推荐