JSF的生命周期有6个阶段,其中每一个阶段都是一个阶段类Phase的子类,前5个阶段都有生命周期接口的execute方法实现,第6个阶段有render实现。其中第一个阶段和第六个阶段是必须的,第二个阶段到第五个阶段是可选的。
1.恢复视图阶段:
负责创建或者恢复视图,视图指UIViewRoot对象。到底是创建视图还是恢复视图,是根据postback来决定,如果页面是第一次访问,就创建视图,否则恢复视图。
2.接受请求值阶段:
负责将页面元素解码为组件书上的组件值。
3.处理验证阶段:
负责校验组件树的组件值。
4.更新模型之阶段:
负责将组件树上 组件值赋值给MBean的相关属性。
5.调用应用阶段:
负责处理自定义事件。
6.渲染应答阶段:
负责将组价树上的组件值编码为html,通过response应答对象的writer写入流返回给客户端。
JSF的行为组件和持有组件提供了立即属性immediate,如果设置改属性为true,生命周期的第三到五阶段不将执行。