第一階段:恢復視圖.
僅僅重建組件樹(視圖).
由FacesServletr控制器進行管理的"用戶請求"(內(nèi)容,一般為JSP)",創(chuàng)建唯一視圖ID(XXX.JSP).
如果"請求參數(shù)"為空.直接跳到第六階段:渲染響應(yīng).
第二階段:應(yīng)用請求值.
每個組件嘗試從客戶端的請求中找尋自已的參數(shù)更新組件值. (如果 immediate=true 命令(Commamnd)組件,則立即處理事件,直接轉(zhuǎn)到渲染響應(yīng)階段進行繪制回應(yīng),輸入(Input)組件,則立即處理值變事件,然后轉(zhuǎn)到渲染響應(yīng)階段. )
第三階段:驗證請求值
從客戶端傳來的字符串轉(zhuǎn)換為組件需要的自定義對象類型,然后進行驗證請求(調(diào)用getXxx方法獲取組件值,進行驗證(如果用戶自定義了驗證器,將立即執(zhí)行,驗證失敗則返回第六階段:渲染響應(yīng)值)).
第四階段:更新模型值
調(diào)用setXxx方法,更新托管Bean的屬性值.
第五階段:調(diào)用應(yīng)用
對隊列里的事件進行調(diào)用.
第六階段:渲染響應(yīng)
在視圖中顯示(調(diào)用getXxx方法給組件賦值,然后把組件值的自定義對象轉(zhuǎn)換為字符串,繪制出來傳給用戶) 所有組件.
執(zhí)行流程:
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
紫蝶∏飛揚↗ 閱讀(401)
評論(0) 編輯 收藏 所屬分類:
JSF