The JSF application lifecycle

                              The JSF application lifecycle
Restore view phase 
  ① 初回アクセスの場合は、 UI コンポーネントツリー( root のみ)し、 renderResponse フラグを立てます、このフラグを立つと、他のフューズはスキップされて「 Render response phase 」に移ります
  ② 二回目以降の Restore view phase では、全て保存されている UI コンポーネントツリーを復元します。
  ③ ビューについては: If the view doesn't already exist, the JSF controller creates it. JSF controller uses this ID if the view already exists
  個人理解:
1) the view doesn't already exist :ページのはじめてのリクエストの場合。 if the view already exists :ページへの postback リクエストの場合(ボタンをクリック):  
2) Managed-Bean request        の場合:この Managed-Bean がインスタンス化されます。 Managed-Bean session の場合:既存の Managed-Bean のインスタンスを取得します。
3)あるコンポーネントの render 属性が false である場合:このコンポーネントだけは検証を実行しなくて、 Render response phase に移ります。
 
Apply request values phase
       Web  ブラウザから送信された入力値(入力コンポーネントと選択コンポーネントに入力された値)を取り出し、復元済みの UI コンポーネントツリーに格納するフューズです。
       each component in the tree retrieves its new value and store it locally. Component values are typically retrieved from the request parameters
       command button immediate 属性に true を指定すると、このフューズで action method が実行されます、「 cancel 」ボタンのように、「入力智の検証」と「モデル値の更新」も不要な場合は、このようにします。
 
Process validations phase
       UI コンポーネントに適用された値の検証を行う。コンバータによる型変換とバリデータによる検証を行います。入力コンポーネントと選択コンポーネントだけになります。
       途中でエラーが発生しても処理を閉めることはなく、すべての対象コンポーネントに対して行われます。型変換や検証で一回でもエラーが発生すると、 renderResponse フラグを立てます。
  個人理解:
バリデータ検証ルールを置いている場所:
1)エンティティ Bean xml ファイルに追加できる。
2) JSP のページ定義ファイルに追加できる
3)コンポーネントの validator 属性に method binding を追加できる
4) コンポーネントに <af:validator> を追加して、作成したバリデータクラス(Faces-config.xmlに添加 )とバインディングします。
 
Update model values phase :
        対象のマネージド Bean は、各コンポーネントの value 属性に指定された ValueExpression 式を評価することで特定します。ただし、この処理の対象になる UI コンポーネントは、入力値を伴うコンポーネントだけとなります。
 個人理解:
     もしあるコンポーネントに値を入力しなければ、このコンポーネントがこのフューズを実行しない。
 
Invoke application phase :
       最初に、登録されたアクションリスナを次々と実行し、最後にアクションメソッドを実行します。
 
Render response phase: 
       同じページに遷移する場合:既存の UI コンポーネント.ツリーを使用して HTML を作成します。
       他のページに遷移する場合:他のページの UI コンポーネント.ツリーを作成し、クライアントに返す HTML を作成します。
  個人理解:
  このフューズは、マネージド Bean のプロパティを getter() メソッドで画面に渡します。
 
参考ファイル:
 
ADF事件调用顺序 init page -> call components getter-> call  value getter
requetの場合: click button->  call components getter-> call  value getter-> call button actionlistener -> call button action
sessionの場合:
click button->  call button actionlistener -> call button action
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值