第一阶段:恢复视图.
仅仅重建组件树(视图).
由FacesServletr控制器进行管理的"用户请求"(内容,一般为JSP)",创建唯一视图ID(XXX.JSP).
如果"请求参数"为空.直接跳到第六阶段:渲染响应.
第二阶段:应用请求值.
每个组件尝试从客户端的请求中找寻自已的参数更新组件值. (如果 immediate=true 命令(Commamnd)组件,则立即处理事件,直接转到渲染响应阶段进行绘制回应,输入(Input)组件,则立即处理值变事件,然后转到渲染响应阶段. )
第三阶段:验证请求值
从客户端传来的字符串转换为组件需要的自定义对象类型,然后进行验证请求(调用getXxx方法获取组件值,进行验证(如果用户自定义了验证器,将立即执行,验证失败则返回第六阶段:渲染响应值)).
第四阶段:更新模型值
调用setXxx方法,更新托管Bean的属性值.
第五阶段:调用应用
对队列里的事件进行调用.
第六阶段:渲染响应
在视图中显示(调用getXxx方法给组件赋值,然后把组件值的自定义对象转换为字符串,绘制出来传给用户) 所有组件.
执行流程:
Processing new Request!RESTORE_VIEW 1
before - RESTORE_VIEW 1
after - RESTORE_VIEW 1
before - RENDER_RESPONSE 6
UserBean:userName=null;pw=null;i=1
setusername=null;i=2
setpw=null;i=3
getusername=null;i=4
getpw=null;i=5
after - RENDER_RESPONSE 6
Done with Request!
----------------------------
Processing new Request!RESTORE_VIEW 1
before - RESTORE_VIEW 1
after - RESTORE_VIEW 1
before - APPLY_REQUEST_VALUES 2
after - APPLY_REQUEST_VALUES 2
before - PROCESS_VALIDATIONS 3
getusername=null;i=6
getpw=null;i=7
after - PROCESS_VALIDATIONS 3
before - UPDATE_MODEL_VALUES 4
setusername=12;i=8
setpw=34;i=9
after - UPDATE_MODEL_VALUES 4
before - INVOKE_APPLICATION 5
success;i=10
after - INVOKE_APPLICATION 5
before - RENDER_RESPONSE 6
getusername=12;i=11
getpw=ok;i=12
after - RENDER_RESPONSE 6
Done with Request!
-----------------------------
Processing new Request!RESTORE_VIEW 1
before - RESTORE_VIEW 1
after - RESTORE_VIEW 1
before - APPLY_REQUEST_VALUES 2
after - APPLY_REQUEST_VALUES 2
before - PROCESS_VALIDATIONS 3
getusername=12;i=13
getpw=ok;i=14
after - PROCESS_VALIDATIONS 3
before - UPDATE_MODEL_VALUES 4
setusername=32;i=15
setpw=ok;i=16
after - UPDATE_MODEL_VALUES 4
before - INVOKE_APPLICATION 5
success;i=17
after - INVOKE_APPLICATION 5
before - RENDER_RESPONSE 6
getusername=32;i=18
getpw=ok;i=19
after - RENDER_RESPONSE 6
Done with Request!
posted on 2007-10-18 15:55
紫蝶∏飛揚↗ 阅读(400)
评论(0) 编辑 收藏 所属分类:
JSF