我们知道JSF生命周期一共有6个phase.关于这六个phase的图表说明,很多参考资料上都有,我个人觉得JSF in action这本书上的图标说明比较直观,也比较好理解。现在我将用一个例子来说明JSF的生命周期。这个例子是JSF1.1环境下编写的。
为了方便理解:我先把这6个phase写到这里:
1.Restore view
2.Apply request values.
3.Process validations.
4.Update model values.
5.Invoke applications.
6.Render response.
为了演示具体的步骤,首先我们需要一个自定义的Listener. 实现PhaseListener接口。






































































































注意:getPhaseId()方法的返回值,这个监听器的作用很简单,就是为了显示信息。
当然还需要在faces-config.xml中进行配置:



接下来,我们再准备一个自定义的Validator.和一个自定义的Convorter.他们分别实现Validator接口和Converter接口。




















































大家可以看到。这些代码的作用就是为了打印信息,以便我们可以跟踪生命周期的过程。当然不要忘记在faces-config.xml中配置上








以上准备工作完成后,我们需要准备一个简单的登录页面,和一个简单的BackBean.就可以开始我们验证了。























这里是一个代码片段,使用到了Tomahwark技术。读者可以把全部的<t:>开头的标签换成<h: >的标签就可以了。
最后:使用一个Back Bean.一个很简单的Bean就可以了。加上Name 和Password属性。加一个login方法。
返回字符串。在配置文件中,导航到一个显示页面。在现实页面中,用<h:outputText>标签显示信息就可以了
如:<h:outputText value="#{bean.name}" />.这部分比较简单。我就不详细写了。
到目前为止,我们整个代码已经写完了。读者可以把这些代码COPY自己环境里运行。然后查看打印出来的信息。
相信会对你理解生命周期有很大的帮助。在运行的过程中,你可以通过改变按钮的:immediate属性。和input输入域的immediate属性。得到不同的信息。
由于时间关系,今天写到这里。我只能下次来详细介绍上面代码运行显示的结果及其原因。不过读者现在已经可以自己运行代码来理解生命周期。