気になったので実験してみた。
PhaseListenerはANY_PHASEでbeforeとafterにログを吐くようにした。
Managed Beanにはコンストラクタ、init、preprocess、prerender、destroyメソッドにログを吐くようにした。
■初回表示
BEFORE :RESTORE_VIEW 1
AFTER :RESTORE_VIEW 1
Page1()
Page1#init
BEFORE :RENDER_RESPONSE 6
Page1#prerender
Page1#destroy
AFTER :RENDER_RESPONSE 6
■ボタンクリック時(ボタンを押した時)
BEFORE :RESTORE_VIEW 1
Page1()
Page1#init
AFTER :RESTORE_VIEW 1
BEFORE :APPLY_REQUEST_VALUES 2
Page1#preprocess
AFTER :APPLY_REQUEST_VALUES 2
BEFORE :PROCESS_VALIDATIONS 3
AFTER :PROCESS_VALIDATIONS 3
BEFORE :UPDATE_MODEL_VALUES 4
AFTER :UPDATE_MODEL_VALUES 4
BEFORE :INVOKE_APPLICATION 5
AFTER :INVOKE_APPLICATION 5
BEFORE :RENDER_RESPONSE 6
Page1#prerender
Page1#destroy
AFTER :RENDER_RESPONSE 6
■画面遷移が伴うボタンクリック
BEFORE :RESTORE_VIEW 1
Page1()
Page1#init
AFTER :RESTORE_VIEW 1
BEFORE :APPLY_REQUEST_VALUES 2
Page1#preprocess
AFTER :APPLY_REQUEST_VALUES 2
BEFORE :PROCESS_VALIDATIONS 3
AFTER :PROCESS_VALIDATIONS 3
BEFORE :UPDATE_MODEL_VALUES 4
AFTER :UPDATE_MODEL_VALUES 4
BEFORE :INVOKE_APPLICATION 5
AFTER :INVOKE_APPLICATION 5
Page2()
Page2#init
BEFORE :RENDER_RESPONSE 6
Page2#prerender
Page2#destroy
Page1#destroy
AFTER :RENDER_RESPONSE 6