当我的托管bean中的特定方法被调用时,我想知道我是否处于JSF生命周期的恢复视图阶段。我怎样才能做到这一点?
答案 0 :(得分:13)
如果您已使用JSF 2.0,则可以使用FacesContext#getCurrentPhaseId()
进行检查:
if (FacesContext.getCurrentInstance().getCurrentPhaseId() == PhaseId.RESTORE_VIEW) {
// Restore view called.
}
但如果你还在JSF 1.x上,那么你最好的办法就是使用PhaseListener
来监听PhaseId.RESTORE_VIEW
,在{}期间在请求范围内设置一个标记/切换/标记{1}}并在beforePhase()
期间删除它。让bean的getter方法检查它在请求范围中的存在。
那就是说,你到底需要什么?我从来没有需要这样的功能要求。是不是bean的构造函数或afterPhase()
带注释的方法可能是更好的做这样的初始化的地方?