jsf生命周期

1,    RestoreViewPhase(重载视图阶段):
如名所述,这一阶段重载画面的视图结构。首先试图从session,或cookie里还原JSF组件数,不能重载视图的话,JSF则认为该页面为当前用户第一次请求,直接跳转到renderView(画面重画阶段)对画面进行重画。
2,    ApplyRequestValuesPhase(应用请求值阶段):
这一阶段主要把从浏览器过来的数据反映到对应的组件里。也可以看作为数据绑定。另外,这一阶段还做了一个很重要的处理。事件(EVENT)的队列入队处理(queueEvent),此处被加入队列中的消息事件将在第5个阶段被加以处理。
主 要调用过程:Lifecycle.execute() -> ApplyRequestValuesPhase.execute() -> Component.processDecodes() -> Component.decode() -> Component.valueBinding -> Renderer.decode() -> Component.queueEvent()
3,    ProcessValidationsPhase(合法性检查阶段)
此阶段对数据进行合法性检查。检查有错误的情况下,跳转到画面重画阶段对画面进行重画。
主 要调用过程:Lifecycle.execute() -> ProcessValidationsPhase .execute() -> UIViewRoot.processValidators()->HtmlForm.processValidators()->UIInput.validate() -> Validators.validate()
4,    UpdateModelValuesPhase(更新模型值阶段):
此阶段把经过变换(CONVERTER变换等)后的组件里值反映到BackingBean里。
主 要调用过程:Lifecycle.execute() -> UpdateModelValuesPhase.execute() -> UIViewRoot.processUpdates->HtmlForm.processUpdates->UIInput.processUpdates -> UIInput.updateModel –ValueBinding (#{beanName.propertyName}) BackingBean
5,    InvokeApplicationPhase(用户应用程序处理/事件处理阶段):
这阶段主要调用用户的应用程序的事件处理方法,对真正的业务逻辑加以处理。它是JSF和用户程序进行接口的部分。
主 要调用过程:Lifecycle.execute() -> InvokeApplicationPhase.execute() -> >UIViewRoot.processApplication->HtmlCommandButton.broadcast->ActionListenerImpl.processAction – MethodBinding(#{beanName.methodName})--> BackingBean.eventMethod
6,    render(页面重画阶段):同页面初始化的页面重画处理。上面说的很清楚,这里不做重复了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值